diff options
author | Thomas Haller <thaller@redhat.com> | 2023-02-17 10:11:46 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-02-28 12:08:06 +0100 |
commit | d73a5d692b3a25cf6946ce2ec4c940efcc6d2cd9 (patch) | |
tree | e1cd3d7f0bac7b2247807ae5893307405fe927a7 | |
parent | 90cc458d31a44c9ab07294cd34691cfb53d5bafc (diff) | |
download | NetworkManager-d73a5d692b3a25cf6946ce2ec4c940efcc6d2cd9.tar.gz |
platform/netlink: assert for valid string in nla_get_string()
-rw-r--r-- | src/libnm-platform/nm-netlink.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/libnm-platform/nm-netlink.h b/src/libnm-platform/nm-netlink.h index cdb8a81c32..2919d432d8 100644 --- a/src/libnm-platform/nm-netlink.h +++ b/src/libnm-platform/nm-netlink.h @@ -238,7 +238,18 @@ nla_get_be64(const struct nlattr *nla) static inline char * nla_get_string(const struct nlattr *nla) { - return nla_data(nla); + char *s; + + /* nla_get_string() requires that nla contains a NUL terminated string. + * It cannot return NULL. Only use it with attributes that validate as NLA_STRING. */ + + nm_assert(nla_len(nla) > 0); + + s = nla_data(nla); + + nm_assert(memchr(s, 0, nla_len(nla))); + + return s; } size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize); |