Message ID | 20240403120937.4061434-2-jeremy@azazel.net |
---|---|
State | Accepted |
Headers | show |
Series | Support for variables in map expressions | expand |
diff --git a/src/evaluate.c b/src/evaluate.c index 1682ba58989e..f28ef2aad8f4 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -4615,8 +4615,9 @@ static int stmt_evaluate_objref_map(struct eval_ctx *ctx, struct stmt *stmt) "Expression is not a map with objects"); break; default: - BUG("invalid mapping expression %s\n", - expr_name(map->mappings)); + return expr_binary_error(ctx->msgs, map->mappings, map->map, + "invalid mapping expression %s", + expr_name(map->mappings)); } if (!datatype_compatible(map->mappings->set->key->dtype, map->map->dtype))
Currently, they are reported as assertion failures: BUG: invalid mapping expression variable nft: src/evaluate.c:4618: stmt_evaluate_objref_map: Assertion `0' failed. Aborted Instead, report them more informatively as errors: /space/azazel/tmp/ruleset.1067161.nft:15:29-38: Error: invalid mapping expression variable quota name ip saddr map $quota_map ~~~~~~~~ ^^^^^^^^^^ Signed-off-by: Jeremy Sowden <jeremy@azazel.net> --- src/evaluate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)