From 18d4f85a5fec9171a978d9d6317ea658a55648b6 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Wed, 11 Jan 2023 19:39:07 +0100 Subject: oplist: Plug another memory leak occurring on parse error Credit to OSS-Fuzz --- .../clusterfuzz-testcase-minimized-oplist_fuzzer-6497436988473344 | 1 + src/oplist.c | 1 + 2 files changed, 2 insertions(+) create mode 100644 fuzz/oplist-leaks/clusterfuzz-testcase-minimized-oplist_fuzzer-6497436988473344 diff --git a/fuzz/oplist-leaks/clusterfuzz-testcase-minimized-oplist_fuzzer-6497436988473344 b/fuzz/oplist-leaks/clusterfuzz-testcase-minimized-oplist_fuzzer-6497436988473344 new file mode 100644 index 0000000..9d68933 --- /dev/null +++ b/fuzz/oplist-leaks/clusterfuzz-testcase-minimized-oplist_fuzzer-6497436988473344 @@ -0,0 +1 @@ +" \ No newline at end of file diff --git a/src/oplist.c b/src/oplist.c index 168c921..0ad1d1c 100644 --- a/src/oplist.c +++ b/src/oplist.c @@ -742,6 +742,7 @@ static int node_from_openstep(parse_ctx ctx, plist_t *plist) ctx->pos++; } if (ctx->pos >= ctx->end) { + plist_free_data(data); PLIST_OSTEP_ERR("EOF while parsing quoted string at offset %ld\n", ctx->pos - ctx->start); ctx->err++; goto err_out; -- cgit v1.1-32-gdbae