From 002afc3f2a4139fae0049c1d9e2fb591ca8ef040 Mon Sep 17 00:00:00 2001 From: Naveen Albert Date: Thu, 10 Nov 2022 12:11:53 +0000 Subject: [PATCH] func_json: Fix memory leak. A memory leak was present in func_json due to using ast_json_free, which just calls ast_free, as opposed to recursively freeing the JSON object as needed. This is now fixed to use the right free functions. ASTERISK-30293 #close Change-Id: I982324dde841dc9147c8d8ad35c8719daf418b49 --- funcs/func_json.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/funcs/func_json.c b/funcs/func_json.c index 1f64824287..55a034348f 100644 --- a/funcs/func_json.c +++ b/funcs/func_json.c @@ -115,7 +115,7 @@ static int json_decode_read(struct ast_channel *chan, const char *cmd, char *dat jsonval = ast_json_object_get(json, args.key); if (!jsonval) { /* no error or warning should be thrown */ ast_debug(1, "Could not find key '%s' in parsed JSON\n", args.key); - ast_json_free(json); + ast_json_unref(json); return -1; } switch(ast_json_typeof(jsonval)) { @@ -134,7 +134,7 @@ static int json_decode_read(struct ast_channel *chan, const char *cmd, char *dat ast_json_free(result2); break; } - ast_json_free(json); + ast_json_unref(json); return 0; }