From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D0D9C43381 for ; Sat, 16 Feb 2019 00:24:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4C8DC222DF for ; Sat, 16 Feb 2019 00:24:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sAczdF+M" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392668AbfBPAYS (ORCPT ); Fri, 15 Feb 2019 19:24:18 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:33514 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726107AbfBPAYR (ORCPT ); Fri, 15 Feb 2019 19:24:17 -0500 Received: by mail-pl1-f196.google.com with SMTP id y10so5764746plp.0 for ; Fri, 15 Feb 2019 16:24:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5ScyoOKvDBdiH1fTXAlMIRyTR3rjh2HYpAT7/3x22cA=; b=sAczdF+Mdf7G4EyFRAqVjtGIahOj6TfaCmga2CnJ2XyC4/lQKnS6DvJmK3Q0K8AuGn PFMSmpp6sRT+XMxXxb+ZjkPCVhVPPPGPlfEb0L7ITAVLXRi+HJO47UfKjhwAgWJ5pTxr XFsYCYaWBbDaj5gB6SprruVSPzCWIN0bl5fapgekZ9QwvvdEfNAO0dgt8xNTHmPY2u5B SFX1q8Hc+8npkXStlHdOyoFlRehsR/kVG9Fx0sksBrVNrlTYOZc7+/iS2UaPI5jZ6t2q OZZ+zKPgwA/3r8rRUk+PqvSxQbsxASTqzz50jutM7KenDMiATzQPOnCUVI2b/BeV2N8r YQRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5ScyoOKvDBdiH1fTXAlMIRyTR3rjh2HYpAT7/3x22cA=; b=aSfL7RH/LSUdIpCzoSIu/N23ppOudm2/VZtESqPEpCxm3dF2PQ1KKK3j6ex2oURZMZ MpdW//kV0K/Q/e859s1lK9kGSETo9QxVPySMtx8nxS7KUBxS/Qmlp9F2qf5LQzqfipQo p6bTS37RTOWt86IGOqtYUW9btF0bCzStmv2m23ouOJBg9h/Nuffj3IIaD83pxst8FM7T JFNZPhizdnPH4IA+MMk1KfiXMWU3qQJMDUKBSFYaqRKawNDUuTH1s6R94Fo6jhdmfLxN dTEfS32myr6pirlsb93ymJrixCboPa4xX/oD2HhnCtCSCbWxzLgSXC1e5oieY9oQ3hZ3 /iFA== X-Gm-Message-State: AHQUAuZ6iToiNR0e8EiNqotUJmoqPLhSPBQ0rSQNPqPkSA/XEJCC8SWR SE6VmAUvAzJfLUcFmfzSXFEuGAwFaRyqNltSa30= X-Google-Smtp-Source: AHgI3IbtBfKLvYPdI9Ix7yckhDjTtHo0bOlX58AbVkgE1hkpXU/BFAG7JcQmlIlLXYmPZab394nSJxhvJcrEKCPXmfE= X-Received: by 2002:a17:902:2b8a:: with SMTP id l10mr12344437plb.70.1550276657159; Fri, 15 Feb 2019 16:24:17 -0800 (PST) MIME-Version: 1.0 References: <20190215113041.GA10511@splinter> <20190215121120.4971-1-vladbu@mellanox.com> In-Reply-To: <20190215121120.4971-1-vladbu@mellanox.com> From: Cong Wang Date: Fri, 15 Feb 2019 16:24:05 -0800 Message-ID: Subject: Re: [PATCH] net: sched: matchall: verify that filter is not NULL in mall_walk() To: Vlad Buslov Cc: Ido Schimmel , Linux Kernel Network Developers , Jamal Hadi Salim , Jiri Pirko , David Miller Content-Type: text/plain; charset="UTF-8" Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, Feb 15, 2019 at 4:11 AM Vlad Buslov wrote: > > Check that filter is not NULL before passing it to tcf_walker->fn() > callback. This can happen when mall_change() failed to offload filter to > hardware. > > Signed-off-by: Vlad Buslov > --- > net/sched/cls_matchall.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c > index a37137430e61..1f9d481b0fbb 100644 > --- a/net/sched/cls_matchall.c > +++ b/net/sched/cls_matchall.c > @@ -247,6 +247,9 @@ static void mall_walk(struct tcf_proto *tp, struct tcf_walker *arg, > > if (arg->count < arg->skip) > goto skip; > + > + if (!head) > + return; So head==NULL still counts one given that you check NULL after checking arg->count. Is this expected?