From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Florian Westphal <fw@strlen.de>
Cc: Fernando Fernandez Mancera <ffmancera@riseup.net>,
Phil Sutter <phil@nwl.cc>,
netfilter-devel@vger.kernel.org, charles@ccxtechnologies.com
Subject: Re: [PATCH nft] evaluate: bogus error when refering to existing non-base chain
Date: Tue, 16 Jul 2019 20:26:07 +0200 [thread overview]
Message-ID: <20190716182607.wdqq2de7nz2s5gce@salvia> (raw)
In-Reply-To: <20190716181253.dtmvpgqiykgx563m@salvia>
On Tue, Jul 16, 2019 at 08:12:53PM +0200, Pablo Neira Ayuso wrote:
> On Tue, Jul 16, 2019 at 08:00:04PM +0200, Florian Westphal wrote:
> > Fernando Fernandez Mancera <ffmancera@riseup.net> wrote:
> > > El 16 de julio de 2019 18:47:11 CEST, Phil Sutter <phil@nwl.cc> escribió:
> > > >Hi Pablo,
> > > >
> > > >On Tue, Jul 16, 2019 at 01:51:20PM +0200, Pablo Neira Ayuso wrote:
> > > >[...]
> > > >> diff --git a/src/evaluate.c b/src/evaluate.c
> > > >> index f95f42e1067a..cd566e856a11 100644
> > > >> --- a/src/evaluate.c
> > > >> +++ b/src/evaluate.c
> > > >> @@ -1984,17 +1984,9 @@ static int stmt_evaluate_verdict(struct
> > > >eval_ctx *ctx, struct stmt *stmt)
> > > >> case EXPR_VERDICT:
> > > >> if (stmt->expr->verdict != NFT_CONTINUE)
> > > >> stmt->flags |= STMT_F_TERMINAL;
> > > >> - if (stmt->expr->chain != NULL) {
> > > >> - if (expr_evaluate(ctx, &stmt->expr->chain) < 0)
> > > >> - return -1;
> > > >> - if ((stmt->expr->chain->etype != EXPR_SYMBOL &&
> > > >> - stmt->expr->chain->etype != EXPR_VALUE) ||
> > > >> - stmt->expr->chain->symtype != SYMBOL_VALUE) {
> > > >> - return stmt_error(ctx, stmt,
> > > >> - "invalid verdict chain expression %s\n",
> > > >> - expr_name(stmt->expr->chain));
> > > >> - }
> > > >> - }
> > > >
> > > >According to my logs, this bit was added by Fernando to cover for
> > > >invalid variable values[1]. So I fear we can't just drop this check.
> > > >
> > > >Cheers, Phil
> > > >
> > > >[1] I didn't check with current sources, but back then the following
> > > > variable contents were problematic:
> > > >
> > > > * define foo = @set1 (a set named 'set1' must exist)
> > > > * define foo = { 1024 }
> > > > * define foo = *
> > >
> > > Yes I am looking to the report and why current version fails when the jump is to a non-base chain because I tested that some months ago.
> > >
> > > I will catch up with more details in a few hours. Sorry for the inconveniences.
> >
> > Fernando, in case Pablos patch v2 fixes the reported bug, could you
> > followup with a test case? It would help when someone tries to remove
> > "unneeded code" in the future ;-)
>
> I'm not sure it's worth a test for this unlikely corner case.
>
> There are thousands of paths where we're not performing strict
> expression validation as in this case... and if you really want to get
> this right.
Having said this, if you want a test for this specific case, I really
don't mind :-)
next prev parent reply other threads:[~2019-07-16 18:26 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-16 11:51 [PATCH nft] evaluate: bogus error when refering to existing non-base chain Pablo Neira Ayuso
2019-07-16 16:47 ` Phil Sutter
2019-07-16 17:29 ` Fernando Fernandez Mancera
2019-07-16 18:00 ` Florian Westphal
2019-07-16 18:12 ` Pablo Neira Ayuso
2019-07-16 18:26 ` Pablo Neira Ayuso [this message]
2019-07-16 18:27 ` Florian Westphal
2019-07-16 18:30 ` Fernando Fernandez Mancera
2019-07-16 22:29 ` Fernando Fernandez Mancera
2019-07-16 17:57 ` 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=20190716182607.wdqq2de7nz2s5gce@salvia \
--to=pablo@netfilter.org \
--cc=charles@ccxtechnologies.com \
--cc=ffmancera@riseup.net \
--cc=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=phil@nwl.cc \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).