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