From: WANG Cong Date: Mon, 13 Jul 2015 19:30:07 +0000 (-0700) Subject: fq_codel: fix a use-after-free X-Git-Tag: v4.1.9~30 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=3e71447b891943cfaf8e5be7bd638c0414b3fea8;p=users%2Fjedix%2Flinux-maple.git fq_codel: fix a use-after-free [ Upstream commit 052cbda41fdc243a8d40cce7ab3a6327b4b2887e ] Fixes: 25331d6ce42b ("net: sched: implement qstat helper routines") Cc: John Fastabend Signed-off-by: Cong Wang Signed-off-by: Cong Wang Acked-by: Eric Dumazet Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c index c244c45b78d7..9291598b5aad 100644 --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c @@ -162,10 +162,10 @@ static unsigned int fq_codel_drop(struct Qdisc *sch) skb = dequeue_head(flow); len = qdisc_pkt_len(skb); q->backlogs[idx] -= len; - kfree_skb(skb); sch->q.qlen--; qdisc_qstats_drop(sch); qdisc_qstats_backlog_dec(sch, skb); + kfree_skb(skb); flow->dropped++; return idx; }