netfilter: nf_tables: reset rule number counter after jump and goto
authorPablo Neira Ayuso <pablo@netfilter.org>
Sat, 10 May 2014 11:39:21 +0000 (13:39 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 10 May 2014 17:12:04 +0000 (19:12 +0200)
Otherwise we start incrementing the rule number counter from the
previous chain iteration.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_core.c

index 804105391b9a903354ae9517d602c8c4638a8879..4368c5850548f91195e358e9aeb968619b0d8fea 100644 (file)
@@ -123,7 +123,7 @@ nft_do_chain(struct nft_pktinfo *pkt, const struct nf_hook_ops *ops)
        struct nft_data data[NFT_REG_MAX + 1];
        unsigned int stackptr = 0;
        struct nft_jumpstack jumpstack[NFT_JUMP_STACK_SIZE];
-       int rulenum = 0;
+       int rulenum;
        /*
         * Cache cursor to avoid problems in case that the cursor is updated
         * while traversing the ruleset.
@@ -131,6 +131,7 @@ nft_do_chain(struct nft_pktinfo *pkt, const struct nf_hook_ops *ops)
        unsigned int gencursor = ACCESS_ONCE(chain->net->nft.gencursor);
 
 do_chain:
+       rulenum = 0;
        rule = list_entry(&chain->rules, struct nft_rule, list);
 next_rule:
        data[NFT_REG_VERDICT].verdict = NFT_CONTINUE;