From: Eric Leblond Date: Sun, 17 Nov 2013 23:54:44 +0000 (+0100) Subject: jump: fix logic in netlink linearize X-Git-Tag: v0.099~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b342ba4a765340dbc7cfd4d510485f95a6edcbe3;p=thirdparty%2Fnftables.git 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 Signed-off-by: Eric Leblond Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index da8be2023..e64e92a8b 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); }