Module: wine Branch: master Commit: fae51bd740339c3a15a1dd4751ec0eb994ee1551 URL: https://source.winehq.org/git/wine.git/?a=commit;h=fae51bd740339c3a15a1dd475...
Author: Sven Baars sven.wine@gmail.com Date: Mon Oct 21 14:18:25 2019 +0200
scrobj: Fix some leaks on error paths (Coverity).
Signed-off-by: Sven Baars sven.wine@gmail.com Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/scrobj/scrobj.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/scrobj/scrobj.c b/dlls/scrobj/scrobj.c index ce5a3dedd1..1d37864039 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; } } @@ -1529,11 +1530,11 @@ static HRESULT parse_scriptlet_public(struct scriptlet_factory *factory) return E_FAIL; }
- if (!(parameter = heap_alloc(sizeof(*parameter)))) return E_OUTOFMEMORY; + if (!(parameter = heap_alloc_zero(sizeof(*parameter)))) return E_OUTOFMEMORY; + list_add_tail(&member->u.parameters, ¶meter->entry);
hres = read_xml_value(factory, ¶meter->name); if (FAILED(hres)) return hres; - list_add_tail(&member->u.parameters, ¶meter->entry); if (!empty && FAILED(hres = expect_end_element(factory))) return hres; } break;