• Mahesh Bandewar's avatar
    blackhole_netdev: fix syzkaller reported issue · b0818f80
    Mahesh Bandewar authored
    While invalidating the dst, we assign backhole_netdev instead of
    loopback device. However, this device does not have idev pointer
    and hence no ip6_ptr even if IPv6 is enabled. Possibly this has
    triggered the syzbot reported crash.
    
    The syzbot report does not have reproducer, however, this is the
    only device that doesn't have matching idev created.
    
    Crash instruction is :
    
    static inline bool ip6_ignore_linkdown(const struct net_device *dev)
    {
            const struct inet6_dev *idev = __in6_dev_get(dev);
    
            return !!idev->cnf.ignore_routes_with_linkdown; <= crash
    }
    
    Also ipv6 always assumes presence of idev and never checks for it
    being NULL (as does the above referenced code). So adding a idev
    for the blackhole_netdev to avoid this class of crashes in the future.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b0818f80
route.c 156 KB