summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--datapath-windows/ovsext/Datapath.c3
-rw-r--r--datapath-windows/ovsext/Netlink/NetlinkBuf.c4
-rw-r--r--datapath-windows/ovsext/Netlink/NetlinkBuf.h14
3 files changed, 18 insertions, 3 deletions
diff --git a/datapath-windows/ovsext/Datapath.c b/datapath-windows/ovsext/Datapath.c
index 44cdfc90e..2d2468eb4 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 918bddd32..0177e8803 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 b8f2aa05d..c52b9cc26 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_ */