Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp2191287ybp; Thu, 10 Oct 2019 03:46:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqz/tt2S319I7X0CExTH9aaUuC2sX5GnOXv9EvZNmhO6Q4sd+c1YwMmRq/n8j+B0jekcuX6U X-Received: by 2002:a17:906:3010:: with SMTP id 16mr7596560ejz.74.1570704377645; Thu, 10 Oct 2019 03:46:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570704377; cv=none; d=google.com; s=arc-20160816; b=mu1OezcCxM66V7iNeU7cSWjDeyqzEhoQjEllf3UBGdY90rJ9DtjtAg8Cquzf3MttBi akfyx7bQgFzB1da76hPN1LT4Tfn0+aR+CdM4L0m0hJDBzDUlOWxYF0q5cXdiLXiu8Ogt lyfAJRpvB1EzdXpXPugkIphwImopR6w2vQWNSp2A33Uh3VIK0GUXrz3/34JOoVjp5cez N2+0BeTs6BKpi7H8HDJBdM7d7Ix6MiWOxpMnR3tdUf4aBtAjJd8go+41uvImJ3GeTBZW Ng+Mz0aUKkkGaXpJyE3NTI6BNFK8N/NtVYuyR/RpsL5PX2YtNUe0Am90A+9ZzXtgEAwr iIZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=8OTaG/uKdSRgAYnTzppmv5eYuqRJmbWKttkVjgItK6c=; b=rFxzMnQUSXATYTG3hHCnXfXUeTDoWoB4TNv56QTFalOKCG3dlajLETeooL95f8Co5Y UcV5kHAcTKSmDRkpr+UKt4GoK6zjcLXS9dCK0aJOkpG22m4mM+fctqrJwbERpOWd3ZOc ZMFclwuUMdtfzdjgJS0bv0nFsLwdiKfUd7IJs0JHQFqSF9NKcFFC3xorodJvI0MPpMlb f0NPbMuX6bQigNZJLqH9WMqbJ1O7Qf0I/u7hirUit4d7gZthAVvqB+B3zTiyhyfIqrF+ 7l9vjhejJJnGvYb4RrSQa7bcJWdf9UOzH8GDu5FBilYTCTrY1gFV8K5UCBnZxgw1nTJT siDQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t18si2853547ejr.440.2019.10.10.03.45.54; Thu, 10 Oct 2019 03:46:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732841AbfJJKpr (ORCPT + 99 others); Thu, 10 Oct 2019 06:45:47 -0400 Received: from mx2.suse.de ([195.135.220.15]:37042 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726230AbfJJKpr (ORCPT ); Thu, 10 Oct 2019 06:45:47 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 84D03AFB1; Thu, 10 Oct 2019 10:45:45 +0000 (UTC) Received: by unicorn.suse.cz (Postfix, from userid 1000) id 32858E378C; Thu, 10 Oct 2019 12:45:45 +0200 (CEST) Date: Thu, 10 Oct 2019 12:45:45 +0200 From: Michal Kubecek To: netdev@vger.kernel.org Cc: Jiri Pirko , "David S. Miller" , Jiri Pirko , Johannes Berg , linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next] genetlink: do not parse attributes for families with zero maxattr Message-ID: <20191010104545.GB22163@unicorn.suse.cz> References: <20191009164432.AD5D1E3785@unicorn.suse.cz> <20191010093153.GG2223@nanopsycho> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191010093153.GG2223@nanopsycho> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 10, 2019 at 11:31:53AM +0200, Jiri Pirko wrote: > Wed, Oct 09, 2019 at 06:44:32PM CEST, mkubecek@suse.cz wrote: > >Commit c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing > >to a separate function") moved attribute buffer allocation and attribute > >parsing from genl_family_rcv_msg_doit() into a separate function > >genl_family_rcv_msg_attrs_parse() which, unlike the previous code, calls > >__nlmsg_parse() even if family->maxattr is 0 (i.e. the family does its own > >parsing). The parser error is ignored and does not propagate out of > >genl_family_rcv_msg_attrs_parse() but an error message ("Unknown attribute > >type") is set in extack and if further processing generates no error or > >warning, it stays there and is interpreted as a warning by userspace. > > > >Dumpit requests are not affected as genl_family_rcv_msg_dumpit() bypasses > >the call of genl_family_rcv_msg_doit() if family->maxattr is zero. Do the > >same also in genl_family_rcv_msg_doit(). > > > >Fixes: c10e6cf85e7d ("net: genetlink: push attrbuf allocation and parsing to a separate function") > >Signed-off-by: Michal Kubecek > >--- > > net/netlink/genetlink.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > >diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c > >index ecc2bd3e73e4..c4bf8830eedf 100644 > >--- a/net/netlink/genetlink.c > >+++ b/net/netlink/genetlink.c > >@@ -639,21 +639,23 @@ static int genl_family_rcv_msg_doit(const struct genl_family *family, > > const struct genl_ops *ops, > > int hdrlen, struct net *net) > > { > >- struct nlattr **attrbuf; > >+ struct nlattr **attrbuf = NULL; > > struct genl_info info; > > int err; > > > > if (!ops->doit) > > return -EOPNOTSUPP; > > > >+ if (!family->maxattr) > >+ goto no_attrs; > > attrbuf = genl_family_rcv_msg_attrs_parse(family, nlh, extack, > > ops, hdrlen, > > GENL_DONT_VALIDATE_STRICT, > >- family->maxattr && > > family->parallel_ops); > > Please also adjust genl_family_rcv_msg_attrs_free() call arg > below in this function in the similar way. Sent v2. Michal