From: Florian Westphal <fw@strlen.de>
To: Shivani Bhardwaj <shivanib134@gmail.com>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [PATCH] NFQUEUE: Fix bug with order of fanout and bypass
Date: Tue, 12 Apr 2016 19:28:37 +0200 [thread overview]
Message-ID: <20160412172837.GA4311@breakpoint.cc> (raw)
In-Reply-To: <20160412171857.GA9814@shivani>
Shivani Bhardwaj <shivanib134@gmail.com> wrote:
> NFQUEUE had a bug with the ordering of fanout and bypass options which
> was arising due to same and odd values for flags and bypass when used
> together. Because of this, during bitwise ANDing of flags and
> NFQ_FLAG_CPU_FANOUT, the value always evaluated to false (since
> NFQ_FLAG_CPU_FANOUT=0x02) and led to skipping of fanout option
> whenever it was used before bypass because then flags would be 1.
>
> Before this patch,
>
> $ sudo iptables -A FORWARD -j NFQUEUE -p TCP --sport 80 --queue-balance 0:3 --queue-cpu-fanout --queue-bypass
>
> Chain FORWARD (policy ACCEPT)
> target prot opt source destination
> NFQUEUE tcp -- anywhere anywhere tcp spt:http NFQUEUE balance 0:3 bypass
>
> After this patch,
>
> Chain FORWARD (policy ACCEPT)
> target prot opt source destination
> NFQUEUE tcp -- anywhere anywhere tcp spt:http NFQUEUE balance 0:3 bypass cpu-fanout
> Closes bugzilla entry: http://bugzilla.netfilter.org/show_bug.cgi?id=939
Ugh, good catch!
> diff --git a/extensions/libxt_NFQUEUE.c b/extensions/libxt_NFQUEUE.c
> index 8115457..0b5becc 100644
> --- a/extensions/libxt_NFQUEUE.c
> +++ b/extensions/libxt_NFQUEUE.c
> @@ -99,7 +99,7 @@ static void NFQUEUE_parse_v2(struct xt_option_call *cb)
> NFQUEUE_parse_v1(cb);
> switch (cb->entry->id) {
> case O_QUEUE_BYPASS:
> - info->bypass = 1;
> + info->bypass |= NFQ_FLAG_BYPASS;
> break;
I don't like this mix of v2 and v3 layout.
Could you try to create an alternate patch that changes
NFQUEUE_parse_v3 to call NFQUEUE_parse_v1 and then add
case O_QUEUE_BYPASS:
info->bypass |= NFQ_FLAG_BYPASS;
to NFQUEUE_parse_v3?
I think that this would make it a bit clearer and
it also avoids the v3/v2/v1 stacking.
Thanks!
next prev parent reply other threads:[~2016-04-12 17:28 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-12 17:18 [PATCH] NFQUEUE: Fix bug with order of fanout and bypass Shivani Bhardwaj
2016-04-12 17:28 ` Florian Westphal [this message]
2016-04-12 17:35 ` Shivani Bhardwaj
2016-04-12 17:56 ` Florian Westphal
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=20160412172837.GA4311@breakpoint.cc \
--to=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
--cc=shivanib134@gmail.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 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).