All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2 nf] netfilter: nf_queue: don't re-enter same hook on packet reinjection
@ 2016-10-13  9:23 Pablo Neira Ayuso
  2016-10-13  9:23 ` [PATCH 2/2 nf] netfilter: nft_range: validate operation netlink attribute Pablo Neira Ayuso
  2016-10-13 13:36 ` [PATCH 1/2 nf] netfilter: nf_queue: don't re-enter same hook on packet reinjection Aaron Conole
  0 siblings, 2 replies; 3+ messages in thread
From: Pablo Neira Ayuso @ 2016-10-13  9:23 UTC (permalink / raw)
  To: netfilter-devel

Make sure we skip the current hook from where the packet was enqueued,
otherwise the packets gets enqueued over and over again.

Fixes: e3b37f11e6e4 ("netfilter: replace list_head with single linked list")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
I managed to reproduce this with a simple test.

 # iptables -I OUTPUT -j QUEUE
 # cd libnetfilter_queue/utils/
 # ./nfqnl_test

Without my patch, netfilter munches packets that are reinjected.

@Aaron: Please, I'd appreciate if you can have a look to confirm this bug
        and the fix. Thanks.

 net/netfilter/nf_queue.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c
index 96964a0070e1..221d7a5c2fec 100644
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
@@ -184,6 +184,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
 			verdict = NF_DROP;
 	}
 
+	hook_entry = rcu_dereference(hook_entry->next);
 	entry->state.thresh = INT_MIN;
 
 	if (verdict == NF_ACCEPT) {
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-13 13:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-13  9:23 [PATCH 1/2 nf] netfilter: nf_queue: don't re-enter same hook on packet reinjection Pablo Neira Ayuso
2016-10-13  9:23 ` [PATCH 2/2 nf] netfilter: nft_range: validate operation netlink attribute Pablo Neira Ayuso
2016-10-13 13:36 ` [PATCH 1/2 nf] netfilter: nf_queue: don't re-enter same hook on packet reinjection Aaron Conole

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.