]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser_bison: allow delete command with map via handle
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 15 Jun 2025 09:36:28 +0000 (11:36 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 23 Jun 2025 16:41:05 +0000 (18:41 +0200)
For consistency with sets, allow delete via handle for maps too.

Fixes: f4a34d25f6d5 ("src: list set handle and delete set via set handle")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser_bison.y
tests/shell/testcases/cache/0008_delete_by_handle_0
tests/shell/testcases/cache/0009_delete_by_handle_incorrect_0

index 87b34293d22ce187eb1f7f2e908dadfa6553527f..9278b67a2931568c06b0b28221e154dbd355ff67 100644 (file)
@@ -1450,7 +1450,7 @@ delete_cmd                :       TABLE           table_or_id_spec
                        {
                                $$ = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &$2, &@$, NULL);
                        }
-                       |       MAP             set_spec
+                       |       MAP             set_or_id_spec
                        {
                                $$ = cmd_alloc(CMD_DELETE, CMD_OBJ_SET, &$2, &@$, NULL);
                        }
index 0db4c693f6d4dd35205878270264bdd4e547370e..9eb75e6ce3744faaeb80a1786d6b873328c659c4 100755 (executable)
@@ -16,6 +16,10 @@ $NFT add set t s { type ipv4_addr\; }
 HANDLE=`$NFT -a list ruleset | grep "set.*handle" | cut -d' ' -f6`
 $NFT delete set t handle $HANDLE
 
+$NFT add map t m { type ipv4_addr : ipv4_addr\; }
+HANDLE=`$NFT -a list ruleset | grep "map.*handle" | cut -d' ' -f6`
+$NFT delete map t handle $HANDLE
+
 $NFT add flowtable t f { hook ingress priority 0\; devices = { lo } \; }
 HANDLE=`$NFT -a list ruleset | grep "flowtable.*handle" | cut -d' ' -f6`
 $NFT delete flowtable t handle $HANDLE
index f0bb02a636ee6c552b8a09b023819c47203b4ad8..dd390e73c8e8d1081f68e46a56b32502bcd2423c 100755 (executable)
@@ -3,6 +3,7 @@
 $NFT delete table handle 4000 && exit 1
 $NFT delete chain t handle 4000 && exit 1
 $NFT delete set t handle 4000 && exit 1
+$NFT delete map t handle 4000 && exit 1
 $NFT delete flowtable t handle 4000 && exit 1
 $NFT delete counter t handle 4000 && exit 1
 exit 0