From 0da4cfaa5d57a0329357a256eb9e92020e1fcd07 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Mon, 13 Jan 2020 15:16:28 +0100 Subject: [PATCH] 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 Reviewed-by: Jiri Pirko Signed-off-by: David Ahern --- include/libnetlink.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/libnetlink.h b/include/libnetlink.h index 8ebdc6d3..e27516f7 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))) -- 2.39.5