]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
jump: fix logic in netlink linearize
authorEric Leblond <eric@regit.org>
Sun, 17 Nov 2013 23:54:44 +0000 (00:54 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 19 Nov 2013 20:12:51 +0000 (21:12 +0100)
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>
src/netlink_linearize.c

index da8be202350a5411205ea0ec5796685b9333d38c..e64e92a8bfd5a2fab932b1085c009d4a87ffdc20 100644 (file)
@@ -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);
                }