From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net] net: Prevent invalid access to skb->prev in __qdisc_drop_all Date: Thu, 29 Nov 2018 15:53:37 -0800 (PST) Message-ID: <20181129.155337.70390658665793928.davem@davemloft.net> References: <1a6fd028-476d-0526-81a1-4c2540a9b7fd@gmail.com> <20181129225508.GX3611@MacBook-Pro-19.local> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: cpaasch@apple.com, netdev@vger.kernel.org, bhole_prashant_q7@lab.ntt.co.jp, tyhicks@canonical.com To: eric.dumazet@gmail.com Return-path: Received: from shards.monkeyblade.net ([23.128.96.9]:37714 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726393AbeK3LAz (ORCPT ); Fri, 30 Nov 2018 06:00:55 -0500 In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: From: Eric Dumazet Date: Thu, 29 Nov 2018 15:09:18 -0800 > diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c > index 2c38e3d0792468162ee0dc4137f1400160ab9276..22cd46a600576f286803536d45875cd9d537cdca 100644 > --- a/net/sched/sch_netem.c > +++ b/net/sched/sch_netem.c > @@ -431,6 +431,9 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch, > int count = 1; > int rc = NET_XMIT_SUCCESS; > > + /* Do not fool qdisc_drop_all() */ > + skb->prev = NULL; > + > /* Random duplication */ > if (q->duplicate && q->duplicate >= get_crandom(&q->dup_cor)) > ++count; If this works I definitely prefer it to making the entire stack pay the price to fix this crash.