From 18ac7e15aab3343b6c6d4dc56a33ea7d24e84f0f Mon Sep 17 00:00:00 2001 From: Sven Baars Date: Thu, 24 Jan 2019 11:59:45 +0100 Subject: [PATCH] wsdapi: Fix some memory leaks (Valgrind). Signed-off-by: Sven Baars Signed-off-by: Alexandre Julliard --- dlls/wsdapi/soap.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/wsdapi/soap.c b/dlls/wsdapi/soap.c index 2ecc01313f5..aa8d15f4c5b 100644 --- a/dlls/wsdapi/soap.c +++ b/dlls/wsdapi/soap.c @@ -1426,6 +1426,9 @@ static HRESULT ws_element_to_wsdxml_element(WS_XML_READER *reader, IWSDXMLContex if (FAILED(ret)) goto cleanup; WSDXMLAddChild(cur_element, element); + WSDFreeLinkedMemory(name); + name = NULL; + cur_wsd_attrib = NULL; /* Add attributes */ @@ -1462,6 +1465,9 @@ static HRESULT ws_element_to_wsdxml_element(WS_XML_READER *reader, IWSDXMLContex new_wsd_attrib->Element = cur_element; new_wsd_attrib->Next = NULL; + WSDAttachLinkedMemory(new_wsd_attrib, name); + name = NULL; + if (cur_wsd_attrib == NULL) element->FirstAttribute = new_wsd_attrib; else @@ -1524,6 +1530,7 @@ outofmemory: cleanup: /* Free uri and element_name if applicable */ WSDFreeLinkedMemory(uri); + WSDFreeLinkedMemory(name); return ret; } @@ -1712,10 +1719,10 @@ HRESULT read_message(IWSDiscoveryPublisherImpl *impl, const char *xml, int xml_l IWSDXMLContext *context = NULL; WS_XML_STRING *soap_uri = NULL; const WS_XML_NODE *node; - WS_XML_READER *reader; + WS_XML_READER *reader = NULL; LPCWSTR value = NULL; LPWSTR uri, prefix; - WS_HEAP *heap; + WS_HEAP *heap = NULL; HRESULT ret; int i; @@ -1945,6 +1952,8 @@ cleanup: free_xml_string(soap_uri); WSDFreeLinkedMemory(soap_msg); if (context != NULL) IWSDXMLContext_Release(context); + if (reader != NULL) WsFreeReader(reader); + if (heap != NULL) WsFreeHeap(heap); return ret; }