diff options
author | Florian Westphal <fw@strlen.de> | 2020-12-14 16:53:29 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2020-12-15 19:54:39 +0100 |
commit | 48917d876d51cd6ba5bff07172acef05c9e12474 (patch) | |
tree | 89d9ce45c1efc9c93e2ee6984b6a9d61dd7305e2 /src/parser_json.c | |
parent | 400e04bdc4d89e774f4e97049b44dd7e7f15c29e (diff) |
json: don't leave dangling pointers on hlist
unshare -n tests/json_echo/run-test.py
[..]
Adding chain c
free(): double free detected in tcache 2
Aborted (core dumped)
The element must be deleted from the hlist prior to freeing it.
Fixes: 389a0e1edc89a ("json: echo: Speedup seqnum_to_json()")
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src/parser_json.c')
-rw-r--r-- | src/parser_json.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parser_json.c b/src/parser_json.c index 09e394df..f0486b77 100644 --- a/src/parser_json.c +++ b/src/parser_json.c @@ -3786,8 +3786,10 @@ static void json_cmd_assoc_free(void) for (i = 0; i < CMD_ASSOC_HSIZE; i++) { hlist_for_each_entry_safe(cur, pos, n, - &json_cmd_assoc_hash[i], hnode) + &json_cmd_assoc_hash[i], hnode) { + hlist_del(&cur->hnode); free(cur); + } } } |