From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f45.google.com ([209.85.215.45]:34446 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933837AbcA1OEW (ORCPT ); Thu, 28 Jan 2016 09:04:22 -0500 Received: by mail-lf0-f45.google.com with SMTP id 17so27433154lfz.1 for ; Thu, 28 Jan 2016 06:04:21 -0800 (PST) Subject: Re: [PATCH] net_sched: drr: check for NULL pointer in drr_dequeue To: Bernie Harris , netdev@vger.kernel.org References: <1453951851-24501-1-git-send-email-bernie.harris@alliedtelesis.co.nz> Cc: davem@davemloft.net, jhs@mojatatu.com, stable@vger.kernel.org From: Sergei Shtylyov Message-ID: <56AA1FE3.6060201@cogentembedded.com> Date: Thu, 28 Jan 2016 17:04:19 +0300 MIME-Version: 1.0 In-Reply-To: <1453951851-24501-1-git-send-email-bernie.harris@alliedtelesis.co.nz> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: Hello. On 1/28/2016 6:30 AM, Bernie Harris wrote: > There are cases where qdisc_dequeue_peeked can return NULL, and the result > is dereferenced later on in the function. > > Similarly to the other qdisc dequeue functions, check whether the skb > pointer is NULL and if it is, goto out. > > Signed-off-by: Bernie Harris > --- > net/sched/sch_drr.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c > index f26bdea..a1cd778 100644 > --- a/net/sched/sch_drr.c > +++ b/net/sched/sch_drr.c > @@ -403,6 +403,8 @@ static struct sk_buff *drr_dequeue(struct Qdisc *sch) > if (len <= cl->deficit) { > cl->deficit -= len; > skb = qdisc_dequeue_peeked(cl->qdisc); > + if (unlikely(skb == NULL)) !skb is preferred in the networking code. I think scripts/checkpatch.pl should've warned you. [...] MBR, Sergei