All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Thomas Haller <thaller@redhat.com>
Cc: NetFilter <netfilter-devel@vger.kernel.org>
Subject: Re: [PATCH nft 3/3] parser_bison: fix length check for ifname in ifname_expr_alloc()
Date: Mon, 23 Oct 2023 19:16:41 +0200	[thread overview]
Message-ID: <ZTaqeZ3kgMNj/WZK@calendula> (raw)
In-Reply-To: <ZTaqG+UTE/3JHdyW@calendula>

On Mon, Oct 23, 2023 at 07:15:10PM +0200, Pablo Neira Ayuso wrote:
> On Mon, Oct 23, 2023 at 07:00:47PM +0200, Thomas Haller wrote:
> > IFNAMSIZ is 16, and the allowed byte length of the name is one less than
> > that. Fix the length check and adjust a test for covering the longest
> > allowed interface name.
> > 
> > This is obviously a change in behavior, because previously interface
> > names with length 16 were accepted and were silently truncated along the
> > way. Now they are rejected as invalid.
> > 
> > Fixes: fa52bc225806 ('parser: reject zero-length interface names')
> > Signed-off-by: Thomas Haller <thaller@redhat.com>
> > ---
> >  src/parser_bison.y                                | 3 ++-
> >  tests/shell/testcases/chains/0042chain_variable_0 | 7 +------
> >  2 files changed, 3 insertions(+), 7 deletions(-)
> > 
> > diff --git a/src/parser_bison.y b/src/parser_bison.y
> > index f0652ba651c6..9bfc3cdb2d12 100644
> > --- a/src/parser_bison.y
> > +++ b/src/parser_bison.y
> > @@ -16,6 +16,7 @@
> >  #include <stdio.h>
> >  #include <inttypes.h>
> >  #include <syslog.h>
> > +#include <net/if.h>
> >  #include <netinet/ip.h>
> >  #include <netinet/tcp.h>
> >  #include <netinet/if_ether.h>
> > @@ -158,7 +159,7 @@ static struct expr *ifname_expr_alloc(const struct location *location,
> >  		return NULL;
> >  	}
> >  
> > -	if (length > 16) {
> > +	if (length >= IFNAMSIZ) {
> >  		xfree(name);
> >  		erec_queue(error(location, "interface name too long"), queue);
> >  		return NULL;
> > diff --git a/tests/shell/testcases/chains/0042chain_variable_0 b/tests/shell/testcases/chains/0042chain_variable_0
> > index 739dc05a1777..a4b929f7344c 100755
> > --- a/tests/shell/testcases/chains/0042chain_variable_0
> > +++ b/tests/shell/testcases/chains/0042chain_variable_0
> > @@ -26,18 +26,13 @@ table netdev filter2 {
> >  
> >  rc=0
> >  $NFT -f - <<< $EXPECTED || rc=$?
> > -test "$rc" = 0
> > +test "$rc" = 1
> >  cat <<EOF | $DIFF -u <($NFT list ruleset) -
> >  table netdev filter1 {
> >  	chain Main_Ingress1 {
> >  		type filter hook ingress device "lo" priority -500; policy accept;
> >  	}
> >  }
> > -table netdev filter2 {
> > -	chain Main_Ingress2 {
> > -		type filter hook ingress devices = { d23456789012345, lo } priority -500; policy accept;
> > -	}
> > -}
> 
> Please, do not remove it, fix this test.

Or maybe I am missing the reason for this change? It seems this
d23456789012345 was added to your previous patch in this series.

Thanks!

  reply	other threads:[~2023-10-23 17:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-23 17:00 [PATCH nft 1/3] tests/shell: add "bogons/nft-f/zero_length_devicename2_assert" Thomas Haller
2023-10-23 17:00 ` [PATCH nft 2/3] tests/shell: cover long interface name in "0042chain_variable_0" test Thomas Haller
2023-10-23 17:00 ` [PATCH nft 3/3] parser_bison: fix length check for ifname in ifname_expr_alloc() Thomas Haller
2023-10-23 17:15   ` Pablo Neira Ayuso
2023-10-23 17:16     ` Pablo Neira Ayuso [this message]
2023-10-23 17:33       ` Thomas Haller
2023-10-24  9:57 ` [PATCH nft 1/3] tests/shell: add "bogons/nft-f/zero_length_devicename2_assert" Pablo Neira Ayuso
2023-10-24 10:15   ` Thomas Haller
2023-10-24 10:24     ` Pablo Neira Ayuso
2023-10-24 10:29       ` Florian Westphal
2023-10-24 10:43         ` Pablo Neira Ayuso
2023-10-24 11:50         ` Phil Sutter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZTaqeZ3kgMNj/WZK@calendula \
    --to=pablo@netfilter.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=thaller@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.