From: Sven Baars Subject: [PATCH 2/3] scrobj: Fix some leaks on error paths (Coverity). Message-Id: <20191019192054.27156-2-sven.wine@gmail.com> Date: Sat, 19 Oct 2019 21:20:53 +0200 In-Reply-To: <20191019192054.27156-1-sven.wine@gmail.com> References: <20191019192054.27156-1-sven.wine@gmail.com> Signed-off-by: Sven Baars --- dlls/scrobj/scrobj.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/scrobj/scrobj.c b/dlls/scrobj/scrobj.c index ce5a3dedd1..8d23c65f55 100644 --- a/dlls/scrobj/scrobj.c +++ b/dlls/scrobj/scrobj.c @@ -1491,6 +1491,7 @@ static HRESULT parse_scriptlet_public(struct scriptlet_factory *factory) if (!wcsicmp(member_iter->name, member->name)) { FIXME("Duplicated member %s\n", debugstr_w(member->name)); + heap_free(member); return E_FAIL; } } @@ -1532,7 +1533,11 @@ static HRESULT parse_scriptlet_public(struct scriptlet_factory *factory) if (!(parameter = heap_alloc(sizeof(*parameter)))) return E_OUTOFMEMORY; hres = read_xml_value(factory, ¶meter->name); - if (FAILED(hres)) return hres; + if (FAILED(hres)) + { + heap_free(parameter); + return hres; + } list_add_tail(&member->u.parameters, ¶meter->entry); if (!empty && FAILED(hres = expect_end_element(factory))) return hres; } -- 2.17.1