diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-09-26 10:02:23 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2023-09-27 10:58:16 +0200 |
commit | 27a2da23d5085cfa3765fb5172e93d9eb060e7df (patch) | |
tree | cd3e70e8031ca4d18b90a6b0787c56dc9c4377ad /src/statement.c | |
parent | 57f5aca0006ebf984ffc1f66d48cf3b74a3d1f59 (diff) |
netlink_linearize: skip set element expression in map statement key
This fix is similar to 22d201010919 ("netlink_linearize: skip set element
expression in set statement key") to fix map statement.
netlink_gen_map_stmt() relies on the map key, that is expressed as a set
element. Use the set element key instead to skip the set element wrap,
otherwise get_register() abort execution:
nft: netlink_linearize.c:650: netlink_gen_expr: Assertion `dreg < ctx->reg_low' failed.
This includes JSON support to make this feature complete and it updates
tests/shell to cover for this support.
Reported-by: Luci Stanescu <luci@cnix.ro>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/statement.c')
-rw-r--r-- | src/statement.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/statement.c b/src/statement.c index 66424eb4..a9fefc36 100644 --- a/src/statement.c +++ b/src/statement.c @@ -848,6 +848,7 @@ static const struct stmt_ops map_stmt_ops = { .name = "map", .print = map_stmt_print, .destroy = map_stmt_destroy, + .json = map_stmt_json, }; struct stmt *map_stmt_alloc(const struct location *loc) |