From d73a5d692b3a25cf6946ce2ec4c940efcc6d2cd9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 17 Feb 2023 10:11:46 +0100 Subject: [PATCH] platform/netlink: assert for valid string in nla_get_string() --- src/libnm-platform/nm-netlink.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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);