summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/Netlink/Netlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'datapath-windows/ovsext/Netlink/Netlink.c')
-rw-r--r--datapath-windows/ovsext/Netlink/Netlink.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/datapath-windows/ovsext/Netlink/Netlink.c b/datapath-windows/ovsext/Netlink/Netlink.c
index 1ceb5e3ca..c286c2fb3 100644
--- a/datapath-windows/ovsext/Netlink/Netlink.c
+++ b/datapath-windows/ovsext/Netlink/Netlink.c
@@ -806,12 +806,12 @@ NlAttrValidate(const PNL_ATTR nla, const PNL_POLICY policy)
UINT32 minLen;
UINT32 maxLen;
UINT32 len;
- BOOLEAN ret = FALSE;
+ BOOLEAN ret = TRUE;
if ((policy->type == NL_A_NO_ATTR) ||
(policy->type == NL_A_VAR_LEN)) {
/* Do not validate anything for attributes of type var length */
- ret = TRUE;
+ ret = FALSE;
goto done;
}
@@ -830,6 +830,7 @@ NlAttrValidate(const PNL_ATTR nla, const PNL_POLICY policy)
if (len < minLen || len > maxLen) {
OVS_LOG_WARN("Attribute: %p, len: %d, not in valid range, "
"min: %d, max: %d", nla, len, minLen, maxLen);
+ ret = FALSE;
goto done;
}
@@ -837,11 +838,13 @@ NlAttrValidate(const PNL_ATTR nla, const PNL_POLICY policy)
if (policy->type == NL_A_STRING) {
if (((PCHAR) nla)[nla->nlaLen - 1]) {
OVS_LOG_WARN("Attributes %p lacks null at the end", nla);
+ ret = FALSE;
goto done;
}
if (memchr(nla + 1, '\0', len - 1) != NULL) {
OVS_LOG_WARN("Attributes %p has bad length", nla);
+ ret = FALSE;
goto done;
}
}