summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Garver <eric@garver.life>2019-09-10 09:46:15 -0400
committerPhil Sutter <phil@nwl.cc>2019-09-10 18:10:20 +0200
commite64c42b19a9e50009b4d8877aeee95edb6818990 (patch)
tree5ed0a843479d512ff6d4cf7a3abbb4d3a9c722b8 /src
parent7336ff9add0fae3a0e971285ca0065e64b31f4be (diff)
parser_json: fix crash on insert rule to bad references
Pass the location via the handle so the error leg in erec_print_list() can reference it. Applies to invalid references to tables, chains, and indexes. Fixes: 586ad210368b ("libnftables: Implement JSON parser") Signed-off-by: Eric Garver <eric@garver.life> Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'src')
-rw-r--r--src/parser_json.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/parser_json.c b/src/parser_json.c
index 8ca07d71..183d9c97 100644
--- a/src/parser_json.c
+++ b/src/parser_json.c
@@ -3258,7 +3258,11 @@ static struct cmd *json_parse_cmd_add(struct json_ctx *ctx,
static struct cmd *json_parse_cmd_replace(struct json_ctx *ctx,
json_t *root, enum cmd_ops op)
{
- struct handle h = { 0 };
+ struct handle h = {
+ .table.location = *int_loc,
+ .chain.location = *int_loc,
+ .index.location = *int_loc,
+ };
json_t *tmp, *value;
const char *family;
struct rule *rule;