]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser_json: fix flowtable device datatype
authorFlorian Westphal <fw@strlen.de>
Mon, 7 Feb 2022 12:03:20 +0000 (13:03 +0100)
committerFlorian Westphal <fw@strlen.de>
Mon, 7 Feb 2022 13:56:26 +0000 (14:56 +0100)
Failed with: BUG: invalid expresion type symbol

Fixes: 78bbe7f7a55be489 ("mnl: do not use expr->identifier to fetch device name")
Signed-off-by: Florian Westphal <fw@strlen.de>
src/parser_json.c

index f07b798adecd6df109c130cf3db2c941b5c4195e..2ab0196461e240f69f8ded9df607f3fbd39a05b4 100644 (file)
@@ -3125,7 +3125,9 @@ static struct expr *json_parse_flowtable_devs(struct json_ctx *ctx,
        size_t index;
 
        if (!json_unpack(root, "s", &dev)) {
-               tmp = symbol_expr_alloc(int_loc, SYMBOL_VALUE, NULL, dev);
+               tmp = constant_expr_alloc(int_loc, &string_type,
+                                         BYTEORDER_HOST_ENDIAN,
+                                         strlen(dev) * BITS_PER_BYTE, dev);
                compound_expr_add(expr, tmp);
                return expr;
        }
@@ -3141,7 +3143,9 @@ static struct expr *json_parse_flowtable_devs(struct json_ctx *ctx,
                        expr_free(expr);
                        return NULL;
                }
-               tmp = symbol_expr_alloc(int_loc, SYMBOL_VALUE, NULL, dev);
+               tmp = constant_expr_alloc(int_loc, &string_type,
+                                         BYTEORDER_HOST_ENDIAN,
+                                         strlen(dev) * BITS_PER_BYTE, dev);
                compound_expr_add(expr, tmp);
        }
        return expr;