diff options
Diffstat (limited to 'datapath-windows/ovsext/Netlink')
-rw-r--r-- | datapath-windows/ovsext/Netlink/Netlink.c | 16 | ||||
-rw-r--r-- | datapath-windows/ovsext/Netlink/Netlink.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/datapath-windows/ovsext/Netlink/Netlink.c b/datapath-windows/ovsext/Netlink/Netlink.c index 24322053c..a63f06623 100644 --- a/datapath-windows/ovsext/Netlink/Netlink.c +++ b/datapath-windows/ovsext/Netlink/Netlink.c @@ -992,6 +992,22 @@ NlAttrGetU64(const PNL_ATTR nla) /* * --------------------------------------------------------------------------- + * Returns the string value in 'nla''s payload. + * Returns NULL if it is not a proper '\0' terminated string. + * --------------------------------------------------------------------------- + */ +PCHAR +NlAttrGetString(const PNL_ATTR nla) +{ + ASSERT(nla->nlaLen >= NLA_HDRLEN); + if (!memchr(NlAttrGet(nla), '\0', nla->nlaLen - NLA_HDRLEN)) { + return NULL; + } + return NlAttrGet(nla); +} + +/* + * --------------------------------------------------------------------------- * Validate the netlink attribute against the policy * --------------------------------------------------------------------------- */ diff --git a/datapath-windows/ovsext/Netlink/Netlink.h b/datapath-windows/ovsext/Netlink/Netlink.h index 363f57501..964c0e5f5 100644 --- a/datapath-windows/ovsext/Netlink/Netlink.h +++ b/datapath-windows/ovsext/Netlink/Netlink.h @@ -138,6 +138,7 @@ UINT8 NlAttrGetU8(const PNL_ATTR nla); UINT16 NlAttrGetU16(const PNL_ATTR nla); UINT32 NlAttrGetU32(const PNL_ATTR nla); UINT64 NlAttrGetU64(const PNL_ATTR nla); +PCHAR NlAttrGetString(const PNL_ATTR nla); const PNL_ATTR NlAttrFind__(const PNL_ATTR attrs, UINT32 size, UINT16 type); const PNL_ATTR NlAttrFindNested(const PNL_ATTR nla, |