diff options
author | Sabrina Dubroca <sd@queasysnail.net> | 2018-08-28 13:40:53 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-29 19:28:55 -0700 |
commit | f707ef61e17261f2bb18c3e4871c6f135ab3aba9 (patch) | |
tree | 45c00ac0e6e8a7daaf4f47761d6f6f355271d815 /scripts/extract-sys-certs.pl | |
parent | ipv6: fix cleanup ordering for pingv6 registration (diff) | |
download | linux-f707ef61e17261f2bb18c3e4871c6f135ab3aba9.tar.gz linux-f707ef61e17261f2bb18c3e4871c6f135ab3aba9.tar.bz2 linux-f707ef61e17261f2bb18c3e4871c6f135ab3aba9.zip |
net: rtnl: return early from rtnl_unregister_all when protocol isn't registered
rtnl_unregister_all(PF_INET6) gets called from inet6_init in cases when
no handler has been registered for PF_INET6 yet, for example if
ip6_mr_init() fails. Abort and avoid a NULL pointer deref in that case.
Example of panic (triggered by faking a failure of
register_pernet_subsys):
general protection fault: 0000 [#1] PREEMPT SMP KASAN PTI
[...]
RIP: 0010:rtnl_unregister_all+0x17e/0x2a0
[...]
Call Trace:
? rtnetlink_net_init+0x250/0x250
? sock_unregister+0x103/0x160
? kernel_getsockopt+0x200/0x200
inet6_init+0x197/0x20d
Fixes: e2fddf5e96df ("[IPV6]: Make af_inet6 to check ip6_route_init return value.")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'scripts/extract-sys-certs.pl')
0 files changed, 0 insertions, 0 deletions