From 2e62c72974dcb2d4c4db1445ae55310a4f84ec15 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Wed, 29 Aug 2018 16:25:09 +0200 Subject: parser_json: Fix crash in error reporting When trying to add a chain to a non-existing table, error reporting tries to dereference indesc pointer of the table's location. Hence make sure the latter is initialized correctly. Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso --- src/parser_json.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/parser_json.c') diff --git a/src/parser_json.c b/src/parser_json.c index 6af9d075..514bc46b 100644 --- a/src/parser_json.c +++ b/src/parser_json.c @@ -2212,7 +2212,9 @@ static struct stmt *json_parse_stmt(struct json_ctx *ctx, json_t *root) static struct cmd *json_parse_cmd_add_table(struct json_ctx *ctx, json_t *root, enum cmd_ops op, enum cmd_obj obj) { - struct handle h = { 0 }; + struct handle h = { + .table.location = *int_loc, + }; const char *family = ""; if (json_unpack_err(ctx, root, "{s:s}", @@ -2250,7 +2252,9 @@ static int parse_policy(const char *policy) static struct cmd *json_parse_cmd_add_chain(struct json_ctx *ctx, json_t *root, enum cmd_ops op, enum cmd_obj obj) { - struct handle h = { 0 }; + struct handle h = { + .table.location = *int_loc, + }; const char *family = "", *policy = "", *type, *hookstr; int prio; struct chain *chain; -- cgit v1.2.3