Also, the boundary check in NlBufAt was a little weird. Fixed the same. Signed-off-by: Ankur Sharma <ankursha...@vmware.com> Acked-by: Nithin Raju <nit...@vmware.com> --- datapath-windows/ovsext/Datapath.c | 3 +-- datapath-windows/ovsext/Netlink/NetlinkBuf.c | 4 +++- datapath-windows/ovsext/Netlink/NetlinkBuf.h | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/datapath-windows/ovsext/Datapath.c b/datapath-windows/ovsext/Datapath.c index 44cdfc9..2d2468e 100644 --- a/datapath-windows/ovsext/Datapath.c +++ b/datapath-windows/ovsext/Datapath.c @@ -925,8 +925,7 @@ OvsDpFillInfo(POVS_SWITCH_CONTEXT ovsSwitchContext, OVS_DATAPATH *datapath = &ovsSwitchContext->datapath; PNL_MSG_HDR nlMsg; - /* XXX: Add API for nlBuf->bufRemLen. */ - ASSERT(NlBufAt(nlBuf, 0, 0) != 0 && nlBuf->bufRemLen >= sizeof *msgIn); + ASSERT(NlBufAt(nlBuf, 0, 0) != 0 && NlBufRemLen(nlBuf) >= sizeof *msgIn); msgOutTmp.nlMsg.nlmsgType = OVS_WIN_NL_DATAPATH_FAMILY_ID; msgOutTmp.nlMsg.nlmsgFlags = 0; /* XXX: ? */ diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.c b/datapath-windows/ovsext/Netlink/NetlinkBuf.c index 918bddd..0177e88 100644 --- a/datapath-windows/ovsext/Netlink/NetlinkBuf.c +++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.c @@ -277,7 +277,8 @@ done: * * Returns pointer to buffer at input offset. * bufLen is used to verify that expected data length - * is within valid boundaries. + * is within valid boundaries. Here by boundaries we mean + * within head and tail. * -------------------------------------------------------------------------- */ PCHAR @@ -291,6 +292,7 @@ NlBufAt(PNL_BUFFER nlBuf, UINT32 offset, UINT32 bufLen) goto done; } + /* Check if requested buffer is within head and tail */ if ((offset + bufLen) > NL_BUF_USED_SPACE(nlBuf)) { goto done; } diff --git a/datapath-windows/ovsext/Netlink/NetlinkBuf.h b/datapath-windows/ovsext/Netlink/NetlinkBuf.h index b8f2aa0..c52b9cc 100644 --- a/datapath-windows/ovsext/Netlink/NetlinkBuf.h +++ b/datapath-windows/ovsext/Netlink/NetlinkBuf.h @@ -52,4 +52,18 @@ NlBufSize(PNL_BUFFER nlBuf) return (nlBuf->bufLen - nlBuf->bufRemLen); } +/* + * -------------------------------------------------------------------------- + * NlBufRemLen -- + * + * Returns the unused size of buffer. + * -------------------------------------------------------------------------- + */ +static __inline UINT32 +NlBufRemLen(PNL_BUFFER nlBuf) +{ + ASSERT(nlBuf); + return (nlBuf->bufRemLen); +} + #endif /* __NETLINK_BUF_H_ */ -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev