Michael Karcher : msxml3: Fix leaks in callers of xmlChar_from_wchar.
Alexandre Julliard
julliard at winehq.org
Mon Oct 13 06:38:59 CDT 2008
Module: wine
Branch: master
Commit: ae2017a9844d40051ad98c4361ca4b42d7e66771
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae2017a9844d40051ad98c4361ca4b42d7e66771
Author: Michael Karcher <wine at mkarcher.dialup.fu-berlin.de>
Date: Sat Oct 11 23:58:35 2008 +0200
msxml3: Fix leaks in callers of xmlChar_from_wchar.
---
dlls/msxml3/cdata.c | 2 ++
dlls/msxml3/comment.c | 2 ++
dlls/msxml3/node.c | 14 +++++++++-----
dlls/msxml3/text.c | 2 ++
4 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c
index 8cf3940..368b731 100644
--- a/dlls/msxml3/cdata.c
+++ b/dlls/msxml3/cdata.c
@@ -606,6 +606,7 @@ static HRESULT WINAPI domcdata_appendData(
}
else
hr = E_FAIL;
+ HeapFree(GetProcessHeap(), 0, pContent);
return hr;
}
@@ -667,6 +668,7 @@ static HRESULT WINAPI domcdata_insertData(
xmlNodeSetContent(pDOMNode->node, str);
hr = S_OK;
}
+ HeapFree(GetProcessHeap(), 0, str);
SysFreeString(sNewString);
}
diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c
index ec6355f..20781a1 100644
--- a/dlls/msxml3/comment.c
+++ b/dlls/msxml3/comment.c
@@ -616,6 +616,7 @@ static HRESULT WINAPI domcomment_appendData(
else
hr = E_FAIL;
}
+ HeapFree( GetProcessHeap(), 0, pContent );
}
else
hr = E_FAIL;
@@ -680,6 +681,7 @@ static HRESULT WINAPI domcomment_insertData(
xmlNodeSetContent(pDOMNode->node, str);
hr = S_OK;
}
+ HeapFree( GetProcessHeap(), 0, str );
SysFreeString(sNewString);
}
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index d7eb675..cecabe8 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -372,6 +372,7 @@ static HRESULT WINAPI xmlnode_put_nodeValue(
{
str = xmlChar_from_wchar((WCHAR*)V_BSTR(&string_value));
xmlNodeSetContent(This->node, str);
+ HeapFree(GetProcessHeap(),0,str);
hr = S_OK;
break;
}
@@ -919,7 +920,7 @@ static HRESULT WINAPI xmlnode_put_text(
BSTR text)
{
xmlnode *This = impl_from_IXMLDOMNode( iface );
- xmlChar *str = NULL;
+ xmlChar *str, *str2, *str3;
TRACE("%p\n", This);
@@ -934,11 +935,13 @@ static HRESULT WINAPI xmlnode_put_text(
str = xmlChar_from_wchar((WCHAR*)text);
/* Escape the string. */
- str = xmlEncodeEntitiesReentrant(This->node->doc, str);
- str = xmlEncodeSpecialChars(This->node->doc, str);
+ str2 = xmlEncodeEntitiesReentrant(This->node->doc, str);
+ HeapFree(GetProcessHeap(), 0, str);
+ str3 = xmlEncodeSpecialChars(This->node->doc, str2);
+ xmlFree(str2);
- xmlNodeSetContent(This->node, str);
- xmlFree(str);
+ xmlNodeSetContent(This->node, str3);
+ xmlFree(str3);
return S_OK;
}
@@ -1091,6 +1094,7 @@ static HRESULT WINAPI xmlnode_put_dataType(
else
ERR("Failed to Create Namepsace\n");
}
+ HeapFree( GetProcessHeap(), 0, str );
}
return hr;
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
index 7cb1d42..f8e1fc4 100644
--- a/dlls/msxml3/text.c
+++ b/dlls/msxml3/text.c
@@ -603,6 +603,7 @@ static HRESULT WINAPI domtext_appendData(
hr = S_OK;
else
hr = E_FAIL;
+ HeapFree( GetProcessHeap(), 0, pContent );
}
else
hr = E_FAIL;
@@ -667,6 +668,7 @@ static HRESULT WINAPI domtext_insertData(
xmlNodeSetContent(pDOMNode->node, str);
hr = S_OK;
}
+ HeapFree(GetProcessHeap(), 0, str);
SysFreeString(sNewString);
}
More information about the wine-cvs
mailing list