summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2013-11-18 00:54:44 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2013-11-19 21:12:51 +0100
commitb342ba4a765340dbc7cfd4d510485f95a6edcbe3 (patch)
treede083f1424a5d239420e88db26bd4470e2a1ccae /src
parent2fa5858b898241af3c23f15ccc6fb14feeddc4bf (diff)
jump: fix logic in netlink linearize
Logic in the test was inverted. The result was the jump string not to be set. Reported-by: Alex Chapman <ajchapman88@hotmail.co.uk> Signed-off-by: Eric Leblond <eric@regit.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r--src/netlink_linearize.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c
index da8be202..e64e92a8 100644
--- a/src/netlink_linearize.c
+++ b/src/netlink_linearize.c
@@ -440,7 +440,8 @@ static void netlink_gen_immediate(struct netlink_linearize_ctx *ctx,
nft_rule_expr_set(nle, NFT_EXPR_IMM_DATA, nld.value, nld.len);
break;
case EXPR_VERDICT:
- if (nft_rule_expr_is_set(nle, NFT_EXPR_IMM_CHAIN)) {
+ if ((expr->chain != NULL) &&
+ !nft_rule_expr_is_set(nle, NFT_EXPR_IMM_CHAIN)) {
nft_rule_expr_set_str(nle, NFT_EXPR_IMM_CHAIN,
nld.chain);
}