Sabrina Dubroca a03dc36bdc ipv6: fix cleanup ordering for pingv6 registration
Commit 6d0bfe226116 ("net: ipv6: Add IPv6 support to the ping socket.")
contains an error in the cleanup path of inet6_init(): when
proto_register(&pingv6_prot, 1) fails, we try to unregister
&pingv6_prot. When rawv6_init() fails, we skip unregistering
&pingv6_prot.

Example of panic (triggered by faking a failure of
 proto_register(&pingv6_prot, 1)):

    general protection fault: 0000 [#1] PREEMPT SMP KASAN PTI
    [...]
    RIP: 0010:__list_del_entry_valid+0x79/0x160
    [...]
    Call Trace:
     proto_unregister+0xbb/0x550
     ? trace_preempt_on+0x6f0/0x6f0
     ? sock_no_shutdown+0x10/0x10
     inet6_init+0x153/0x1b8

Fixes: 6d0bfe226116 ("net: ipv6: Add IPv6 support to the ping socket.")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-08-29 19:28:55 -07:00
..
2018-07-24 14:10:42 -07:00
2018-07-30 09:10:25 -07:00
2018-08-27 15:24:33 -07:00
2018-08-13 20:45:49 -07:00
2018-07-24 14:10:42 -07:00
2018-07-30 09:10:25 -07:00
2018-08-23 16:03:58 -07:00
2018-08-29 18:04:54 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:43 -07:00