Hi Nithin,

Now that i think of the change in NlBufAt again, i think the previous code was 
correct.
 if ((offset + bufLen) > NL_BUF_USED_SPACE(nlBuf)) will make sure that the 
request buffer is within tail boundaries.

I'll revert my fix in  NlBufAt in v2.

Regards,
Ankur
________________________________________
From: Nithin Raju
Sent: Wednesday, October 1, 2014 8:50 PM
To: Ankur Sharma
Cc: <dev@openvswitch.org>
Subject: Re: [ovs-dev] [PATCH v1 2/5] datapath-windows: Added the API for       
getting unused space in nlbuf.

> diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.c 
> b/datapath-windows/ovsext/Netlink/NetlinkBuf.c
> index 918bddd..bc079ef 100644
> --- a/datapath-windows/ovsext/Netlink/NetlinkBuf.c
> +++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.c
> @@ -291,7 +291,7 @@ NlBufAt(PNL_BUFFER nlBuf, UINT32 offset, UINT32 bufLen)
>         goto done;
>     }
>
> -    if ((offset + bufLen) > NL_BUF_USED_SPACE(nlBuf)) {
> +    if ((offset + bufLen) > nlBuf->bufRemLen) {

Should this not be?
    if ((offset + bufLen) > nlBuf->bufLen) {

Basically, lets say total buffer size is 48, and you have used up 40 bytes. So:
nlBuf->bufLen is 48
nlBuf->bufRemLen is 8

If offset = 40, and bufLen = 16, you want to fail the API.
If offset = 40, and bufLen = 4, you want to succeed the API.

Looks good otherwise.

Thanks,
-- Nithin
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to