On Tue, Oct 15, 2019 at 10:36 AM David Miller <da...@davemloft.net> wrote: > > From: Mahesh Bandewar <mahe...@google.com> > Date: Fri, 11 Oct 2019 18:14:55 -0700 > > > 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. > > > > --- > ... > > Fixes: 8d7017fd621d ("blackhole_netdev: use blackhole_netdev to invalidate > > dst entries") > > Signed-off-by: Mahesh Bandewar <mahe...@google.com> > > Applied and queued up for -stable, thanks.
Hi David, I just started seeing pretty weird behavior in IPv6 stack after this patch being applied to the net/stable branch. I'm suspecting it's my patch especially after the v2/v3 changes as I didn't see any other IPv6 changes in net/branch. I propose to revert this and take a closer look so that it doesn't spill any further. I'll post a revert soon. thanks, --mahesh..