Nikolay Sivov : msxml3: Fix some string leaks (Valgrind).

Alexandre Julliard julliard at winehq.org
Tue May 6 13:37:11 CDT 2014


Module: wine
Branch: master
Commit: 9e576e1089a376c3fdc793e5ec1aeec390bd5530
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9e576e1089a376c3fdc793e5ec1aeec390bd5530

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue May  6 11:47:46 2014 +0400

msxml3: Fix some string leaks (Valgrind).

---

 dlls/msxml3/element.c      |    1 +
 dlls/msxml3/tests/domdoc.c |    7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 4fe53a8..0de9c34 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -1287,6 +1287,7 @@ static HRESULT WINAPI domelem_setAttribute(
         {
             int cmp = xmlStrEqual(ns->href, xml_value);
             heap_free(xml_value);
+            heap_free(xml_name);
             return cmp ? S_OK : E_INVALIDARG;
         }
     }
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 8d8c7c0..19b2951 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1940,6 +1940,7 @@ static void test_domnode( void )
         ok( r == E_FAIL, "getAttribute ret %08x\n", r );
         ok( V_VT(&var) == VT_NULL || V_VT(&var) == VT_EMPTY, "vt = %x\n", V_VT(&var));
         VariantClear(&var);
+        SysFreeString(str);
 
         str = SysAllocString( szdl );	
         V_VT(&var) = VT_I4;
@@ -8121,6 +8122,7 @@ static void test_put_nodeTypedValue(void)
     EXPECT_HR(hr, S_OK);
     ok(!lstrcmpW(str, _bstr_("ABCD")), "%s\n", wine_dbgstr_w(str));
     IXMLDOMNode_Release(node);
+    SysFreeString(str);
 
     array = SafeArrayCreateVector(VT_UI1, 0, 7);
     hr = SafeArrayAccessData(array, (void*)&ptr);
@@ -8160,6 +8162,7 @@ static void test_put_nodeTypedValue(void)
     ok(!lstrcmpW(str, _bstr_("ZEdWemRBPQ==")), "%s\n", wine_dbgstr_w(str));
     IXMLDOMNode_Release(node);
     SafeArrayDestroyData(array);
+    SysFreeString(str);
 
     /* bin.hex */
     V_VT(&value) = VT_BSTR;
@@ -8208,6 +8211,7 @@ static void test_put_nodeTypedValue(void)
     ok(!lstrcmpW(str, _bstr_("000102030405060708090a0b0c0d0e0f")), "%s\n", wine_dbgstr_w(str));
     IXMLDOMNode_Release(node);
     SafeArrayDestroyData(array);
+    SysFreeString(str);
 
     IXMLDOMElement_Release(elem);
     IXMLDOMDocument_Release(doc);
@@ -9509,6 +9513,7 @@ static void test_selection(void)
     EXPECT_HR(hr, S_OK);
     ok(!lstrcmpW(name, _bstr_("c")), "got node name %s\n", wine_dbgstr_w(name));
     IXMLDOMNode_Release(node);
+    SysFreeString(name);
 
     V_VT(&v) = VT_I2;
     hr = IEnumVARIANT_Next(enum1, 1, &v, NULL);
@@ -9530,6 +9535,7 @@ static void test_selection(void)
     EXPECT_HR(hr, S_OK);
     ok(!lstrcmpW(name, _bstr_("d")), "got node name %s\n", wine_dbgstr_w(name));
     IXMLDOMNode_Release(node);
+    SysFreeString(name);
 
     IXMLDOMSelection_Release(selection);
     IXMLDOMNodeList_Release(list);
@@ -11784,6 +11790,7 @@ static void test_create_attribute(void)
             ok(hr == S_FALSE, "%d: got 0x%08x\n", i, hr);
             ok(str == NULL, "%d: got prefix %s\n", i, wine_dbgstr_w(str));
         }
+        SysFreeString(str);
 
         str = NULL;
         hr = IXMLDOMNode_get_namespaceURI(node, &str);




More information about the wine-cvs mailing list