On Tue, 4 Apr 2017, Cong Wang wrote: > Dmitry reported a crash when injecting faults in > attach_one_default_qdisc() and dev->qdisc is still > a noop_disc, the check before qdisc_hash_add() fails > to catch it because it tests NULL. We should test > against noop_qdisc since it is the default qdisc > at this point. > > Fixes: 59cc1f61f09c ("net: sched: convert qdisc linked list to hashtable") > Reported-by: Dmitry Vyukov <dvyu...@google.com> > Cc: Jiri Kosina <jkos...@suse.cz> > Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>
Acked-by: Jiri Kosina <jkos...@suse.cz> Thanks. > --- > net/sched/sch_generic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c > index b052b27..1a2f9e9 100644 > --- a/net/sched/sch_generic.c > +++ b/net/sched/sch_generic.c > @@ -794,7 +794,7 @@ static void attach_default_qdiscs(struct net_device *dev) > } > } > #ifdef CONFIG_NET_SCHED > - if (dev->qdisc) > + if (dev->qdisc != &noop_qdisc) > qdisc_hash_add(dev->qdisc); > #endif > } > -- > 2.5.5 > -- Jiri Kosina SUSE Labs