aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Machata <pmachata@gmail.com>2020-01-13 15:16:28 +0100
committerDavid Ahern <dsahern@gmail.com>2020-01-18 21:46:12 +0000
commit0da4cfaa5d57a0329357a256eb9e92020e1fcd07 (patch)
tree0d9b1fdacde6d3cbcd68f6bd7a0d6fe64d1ee173
parented81a2a040a9af811b098cbb8cf026afd698bdbe (diff)
downloadiproute2-0da4cfaa5d57a0329357a256eb9e92020e1fcd07.tar.gz
libnetlink: parse_rtattr_nested should allow NLA_F_NESTED flag
In kernel commit 8cb081746c03 ("netlink: make validation more configurable for future strictness"), Linux started implicitly flagging nests with NLA_F_NESTED, unless the nest is created with nla_nest_start_noflag(). The ETS code uses nla_nest_start() where possible, so it does not work with the current iproute2 code. Have libnetlink catch up by admitting the flag in the attribute. Signed-off-by: Petr Machata <petrm@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David Ahern <dsahern@gmail.com>
-rw-r--r--include/libnetlink.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/libnetlink.h b/include/libnetlink.h
index 8ebdc6d3d..e27516f76 100644
--- a/include/libnetlink.h
+++ b/include/libnetlink.h
@@ -173,7 +173,8 @@ int rta_nest_end(struct rtattr *rta, struct rtattr *nest);
RTA_ALIGN((rta)->rta_len)))
#define parse_rtattr_nested(tb, max, rta) \
- (parse_rtattr((tb), (max), RTA_DATA(rta), RTA_PAYLOAD(rta)))
+ (parse_rtattr_flags((tb), (max), RTA_DATA(rta), RTA_PAYLOAD(rta), \
+ NLA_F_NESTED))
#define parse_rtattr_one_nested(type, rta) \
(parse_rtattr_one(type, RTA_DATA(rta), RTA_PAYLOAD(rta)))