• Eric W. Biederman's avatar
    netns: Don't receive new packets in a dead network namespace. · b9f75f45
    Eric W. Biederman authored
    Alexey Dobriyan <adobriyan@gmail.com> writes:
    > Subject: ICMP sockets destruction vs ICMP packets oops
    
    > After icmp_sk_exit() nuked ICMP sockets, we get an interrupt.
    > icmp_reply() wants ICMP socket.
    >
    > Steps to reproduce:
    >
    > 	launch shell in new netns
    > 	move real NIC to netns
    > 	setup routing
    > 	ping -i 0
    > 	exit from shell
    >
    > BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
    > IP: [<ffffffff803fce17>] icmp_sk+0x17/0x30
    > PGD 17f3cd067 PUD 17f3ce067 PMD 0 
    > Oops: 0000 [1] PREEMPT SMP DEBUG_PAGEALLOC
    > CPU 0 
    > Modules linked in: usblp usbcore
    > Pid: 0, comm: swapper Not tainted 2.6.26-rc6-netns-ct #4
    > RIP: 0010:[<ffffffff803fce17>]  [<ffffffff803fce17>] icmp_sk+0x17/0x30
    > RSP: 0018:ffffffff8057fc30  EFLAGS: 00010286
    > RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff81017c7db900
    > RDX: 0000000000000034 RSI: ffff81017c7db900 RDI: ffff81017dc41800
    > RBP: ffffffff8057fc40 R08: 0000000000000001 R09: 00000000000...
    b9f75f45