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..

Reply via email to