From: Pablo Neira Ayuso Date: Fri, 17 Jun 2022 17:33:53 +0000 (+0200) Subject: libnftables: release top level scope X-Git-Tag: v1.0.5~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12a223ced7f6b9d9555390c1922bb67133a35c5a;p=thirdparty%2Fnftables.git libnftables: release top level scope Otherwise bogus variable redefinition are reported via -o/--optimize: redefinition.conf:5:8-21: Error: redefinition of symbol 'interface_inet' define interface_inet = enp5s0 ^^^^^^^^^^^^^^ Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/libnftables.c b/src/libnftables.c index aac682b7..f2a1ef04 100644 --- a/src/libnftables.c +++ b/src/libnftables.c @@ -708,6 +708,8 @@ err: if (rc) nft_cache_release(&nft->cache); + scope_release(nft->state->scopes[0]); + return rc; } diff --git a/tests/shell/testcases/optimizations/variables b/tests/shell/testcases/optimizations/variables new file mode 100755 index 00000000..fa986065 --- /dev/null +++ b/tests/shell/testcases/optimizations/variables @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +RULESET="define addrv4_vpnnet = 10.1.0.0/16 + +table ip nat { + chain postrouting { + type nat hook postrouting priority 0; policy accept; + + ip saddr \$addrv4_vpnnet counter masquerade fully-random comment \"masquerade ipv4\" + } +}" + +$NFT -c -o -f - <<< $RULESET