• Hristo Venev's avatar
    net: sit: Unregister catch-all devices · 610f8c0f
    Hristo Venev authored
    A sit interface created without a local or a remote address is linked
    into the `sit_net::tunnels_wc` list of its original namespace. When
    deleting a network namespace, delete the devices that have been moved.
    
    The following script triggers a null pointer dereference if devices
    linked in a deleted `sit_net` remain:
    
        for i in `seq 1 30`; do
            ip netns add ns-test
            ip netns exec ns-test ip link add dev veth0 type veth peer veth1
            ip netns exec ns-test ip link add dev sit$i type sit dev veth0
            ip netns exec ns-test ip link set dev sit$i netns $$
            ip netns del ns-test
        done
        for i in `seq 1 30`; do
            ip link del dev sit$i
        done
    
    Fixes: 5e6700b3 ("sit: add support of x-netns")
    Signed-off-by: default avatarHristo Venev <hristo@venev.name>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    610f8c0f
sit.c 47 KB