]> git.baikalelectronics.ru Git - kernel.git/commit
geneve: should not call rt6_lookup() when ipv6 was disabled
authorHangbin Liu <liuhangbin@gmail.com>
Thu, 7 Feb 2019 10:36:10 +0000 (18:36 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 Feb 2019 18:48:42 +0000 (10:48 -0800)
commit239bbb05da402e352804772306fa7e276e783596
tree5a42363b18ee47dd7e107fd57e151f13bb9e4675
parent726c21f82861b5628e065d3f75b4a469231befa9
geneve: should not call rt6_lookup() when ipv6 was disabled

When we add a new GENEVE device with IPv6 remote, checking only for
IS_ENABLED(CONFIG_IPV6) is not enough as we may disable IPv6 in the
kernel command line (ipv6.disable=1), and calling rt6_lookup() would
cause a NULL pointer dereference.

v2:
- don't mix declarations and code (reported by Stefano Brivio, Eric Dumazet)
- there's no need to use in6_dev_get() as we only need to check that
  idev exists (reported by David Ahern). This is under RTNL, so we can
  simply use __in6_dev_get() instead (Stefano, Eric).

Reported-by: Jianlin Shi <jishi@redhat.com>
Fixes: c265c91285668 ("geneve: configure MTU based on a lower device")
Cc: Alexey Kodanev <alexey.kodanev@oracle.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/geneve.c