summaryrefslogtreecommitdiffstats
path: root/iptables/nft.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-10-08 10:44:20 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-12-30 23:50:52 +0100
commit5f6e384ac2a3d7b647a909654a3bdee1c0bcb3eb (patch)
tree8ff19a400766d25801433cf23c44f90951fe0250 /iptables/nft.c
parent4b7a4afaa240e5d2039e612e125b045d5d1cb7fa (diff)
nft: pass ipt_entry to ->save_firewall hook
The extension needs the ipt_entry not to crash. Since cs->fw actually points to an union that also contains cs->fw6, just pass cs->fw to make it work. This fixes: -A INPUT -p tcp -m multiport --ports 1,2,3,4,6,7,8,9,10,11,12,13,14,15 Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'iptables/nft.c')
-rw-r--r--iptables/nft.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/iptables/nft.c b/iptables/nft.c
index 50e756be..01e02640 100644
--- a/iptables/nft.c
+++ b/iptables/nft.c
@@ -1040,8 +1040,10 @@ nft_rule_print_save(const struct iptables_command_state *cs,
} else
printf("-m %s", matchp->match->name);
- if (matchp->match->save != NULL)
- matchp->match->save(NULL, matchp->match->m);
+ if (matchp->match->save != NULL) {
+ /* cs->fw union makes the trick */
+ matchp->match->save(&cs->fw, matchp->match->m);
+ }
printf(" ");
}
@@ -1052,7 +1054,7 @@ nft_rule_print_save(const struct iptables_command_state *cs,
printf("-j %s", cs->jumpto);
if (cs->target->save != NULL)
- cs->target->save(NULL, cs->target->t);
+ cs->target->save(&cs->fw, cs->target->t);
} else if (strlen(cs->jumpto) > 0)
printf("-%c %s", ip_flags & IPT_F_GOTO ? 'g' : 'j',
cs->jumpto);