]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
libnetlink: parse_rtattr_nested should allow NLA_F_NESTED flag
authorPetr Machata <pmachata@gmail.com>
Mon, 13 Jan 2020 14:16:28 +0000 (15:16 +0100)
committerDavid Ahern <dsahern@gmail.com>
Sat, 18 Jan 2020 21:46:12 +0000 (21:46 +0000)
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>
include/libnetlink.h

index 8ebdc6d3d03efc1dd37864508ab879cb4b446d15..e27516f7648fc59b2859c1ca3e57014b5035ba75 100644 (file)
@@ -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)))