diff options
author | Phil Sutter <phil@nwl.cc> | 2022-10-11 18:46:55 +0200 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2022-11-18 15:50:24 +0100 |
commit | c327e9331e50d7b4d6cfd0a82fb38bec73703bfb (patch) | |
tree | dcfac81d4ae15a21ddacbc1edc7a9d4530b86d46 /src/xt.c | |
parent | 4521732ebbf34573062d2cad2f74b98910ea1c5b (diff) |
Warn for tables with compat expressions in rules
While being able to "look inside" compat expressions using nft is a nice
feature, it is also (yet another) pitfall for unaware users, deceiving
them into assuming interchangeability (or at least compatibility)
between iptables-nft and nft.
In reality, which involves 'nft list ruleset | nft -f -', any correctly
translated compat expressions will turn into native nftables ones not
understood by (the version of) iptables-nft which created them in the
first place. Other compat expressions will vanish, potentially
compromising the firewall ruleset.
Emit a warning (as comment) to give users a chance to stop and
reconsider before shooting their own foot.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'src/xt.c')
-rw-r--r-- | src/xt.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -238,6 +238,7 @@ void netlink_parse_match(struct netlink_parse_ctx *ctx, stmt->xt.name = strdup(name); stmt->xt.type = NFT_XT_MATCH; #endif + ctx->table->has_xt_stmts = true; rule_stmt_append(ctx->rule, stmt); } @@ -283,6 +284,7 @@ void netlink_parse_target(struct netlink_parse_ctx *ctx, stmt->xt.name = strdup(name); stmt->xt.type = NFT_XT_TARGET; #endif + ctx->table->has_xt_stmts = true; rule_stmt_append(ctx->rule, stmt); } |