From 76bcd7871062ce66909cf1ff8aba68d222d54ab9 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 10 Aug 2021 17:32:47 +0200 Subject: [PATCH] platform/netlink: use appropriate integer types in nla_policy --- src/libnm-platform/nm-netlink.c | 6 +++--- src/libnm-platform/nm-netlink.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libnm-platform/nm-netlink.c b/src/libnm-platform/nm-netlink.c index c7dfb3664a..56cde50ca7 100644 --- a/src/libnm-platform/nm-netlink.c +++ b/src/libnm-platform/nm-netlink.c @@ -597,7 +597,7 @@ static int validate_nla(const struct nlattr *nla, int maxtype, const struct nla_policy *policy) { const struct nla_policy *pt; - uint16_t minlen; + uint8_t minlen; uint16_t len; int type = nla_type(nla); @@ -609,7 +609,7 @@ validate_nla(const struct nlattr *nla, int maxtype, const struct nla_policy *pol if (pt->type > NLA_TYPE_MAX) g_return_val_if_reached(-NME_BUG); - if (pt->minlen) + if (pt->minlen > 0) minlen = pt->minlen; else minlen = nla_attr_minlen[pt->type]; @@ -619,7 +619,7 @@ validate_nla(const struct nlattr *nla, int maxtype, const struct nla_policy *pol if (len < minlen) return -NME_UNSPEC; - if (pt->maxlen && len > pt->maxlen) + if (pt->maxlen > 0 && len > pt->maxlen) return -NME_UNSPEC; switch (pt->type) { diff --git a/src/libnm-platform/nm-netlink.h b/src/libnm-platform/nm-netlink.h index b9f1f6f4f3..00d817cdbb 100644 --- a/src/libnm-platform/nm-netlink.h +++ b/src/libnm-platform/nm-netlink.h @@ -55,10 +55,10 @@ const char *nl_nlmsghdr_to_str(const struct nlmsghdr *hdr, char *buf, gsize len) struct nla_policy { /* Type of attribute or NLA_UNSPEC */ - uint16_t type; + uint8_t type; /* Minimal length of payload required */ - uint16_t minlen; + uint8_t minlen; /* Maximal length of payload allowed */ uint16_t maxlen;