netfilter: nf_tables: fix issue with verdict support
The test on verdict was simply done on the value of the verdict which is not correct as far as queue is concern. In fact, the test of verdict test must be done with respect to the verdict mask for verdicts which are not internal to nftables. Signed-off-by: Eric Leblond <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
cfce0a2b61
commit
e569bdab35
|
@ -164,7 +164,7 @@ nft_do_chain_pktinfo(struct nft_pktinfo *pkt, const struct nf_hook_ops *ops)
|
|||
break;
|
||||
}
|
||||
|
||||
switch (data[NFT_REG_VERDICT].verdict) {
|
||||
switch (data[NFT_REG_VERDICT].verdict & NF_VERDICT_MASK) {
|
||||
case NF_ACCEPT:
|
||||
case NF_DROP:
|
||||
case NF_QUEUE:
|
||||
|
@ -172,6 +172,9 @@ nft_do_chain_pktinfo(struct nft_pktinfo *pkt, const struct nf_hook_ops *ops)
|
|||
nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RULE);
|
||||
|
||||
return data[NFT_REG_VERDICT].verdict;
|
||||
}
|
||||
|
||||
switch (data[NFT_REG_VERDICT].verdict) {
|
||||
case NFT_JUMP:
|
||||
if (unlikely(pkt->skb->nf_trace))
|
||||
nft_trace_packet(pkt, chain, rulenum, NFT_TRACE_RULE);
|
||||
|
|
Loading…
Reference in New Issue