ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is set
authorHangbin Liu <liuhangbin@gmail.com>
Wed, 11 Dec 2019 14:20:16 +0000 (22:20 +0800)
committerJakub Kicinski <jakub.kicinski@netronome.com>
Sat, 14 Dec 2019 01:13:49 +0000 (17:13 -0800)
commit2beb6d2901a3f73106485d560c49981144aeacb1
tree95376d3e7ce5564bd7a83a6f1cd6ed6629c18d4f
parent03b06e3f83523ded51aa822f58c083fbde08feb5
ipv6/addrconf: only check invalid header values when NETLINK_F_STRICT_CHK is set

In commit 4b1373de73a3 ("net: ipv6: addr: perform strict checks also for
doit handlers") we add strict check for inet6_rtm_getaddr(). But we did
the invalid header values check before checking if NETLINK_F_STRICT_CHK
is set. This may break backwards compatibility if user already set the
ifm->ifa_prefixlen, ifm->ifa_flags, ifm->ifa_scope in their netlink code.

I didn't move the nlmsg_len check because I thought it's a valid check.

Reported-by: Jianlin Shi <jishi@redhat.com>
Fixes: 4b1373de73a3 ("net: ipv6: addr: perform strict checks also for doit handlers")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
net/ipv6/addrconf.c