Validate required parameters in inet6_validate_link_af
authorMaxim Mikityanskiy <maximmi@mellanox.com>
Tue, 21 May 2019 06:40:04 +0000 (06:40 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 22 May 2019 19:07:25 +0000 (12:07 -0700)
commit7dc2bccab0ee37ac28096b8fcdc390a679a15841
treea747c5ea65b10d25d71cabbe1d6eeb351bac6a79
parent54dee406374ce8adb352c48e175176247cb8db7c
Validate required parameters in inet6_validate_link_af

inet6_set_link_af requires that at least one of IFLA_INET6_TOKEN or
IFLA_INET6_ADDR_GET_MODE is passed. If none of them is passed, it
returns -EINVAL, which may cause do_setlink() to fail in the middle of
processing other commands and give the following warning message:

  A link change request failed with some changes committed already.
  Interface eth0 may have been left with an inconsistent configuration,
  please check.

Check the presence of at least one of them in inet6_validate_link_af to
detect invalid parameters at an early stage, before do_setlink does
anything. Also validate the address generation mode at an early stage.

Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c