• Nikolay Aleksandrov's avatar
    netpoll: fix NULL pointer dereference in netpoll_cleanup · d0fe8c88
    Nikolay Aleksandrov authored
    I've been hitting a NULL ptr deref while using netconsole because the
    np->dev check and the pointer manipulation in netpoll_cleanup are done
    without rtnl and the following sequence happens when having a netconsole
    over a vlan and we remove the vlan while disabling the netconsole:
    	CPU 1					CPU2
    					removes vlan and calls the notifier
    enters store_enabled(), calls
    netdev_cleanup which checks np->dev
    and then waits for rtnl
    					executes the netconsole netdev
    					release notifier making np->dev
    					== NULL and releases rtnl
    continues to dereference a member of
    np->dev which at this point is == NULL
    Signed-off-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d0fe8c88
netpoll.c 30.6 KB