Piotr Caban : msxml3: oldChild in xmlnode_removeChild may be NULL.
Alexandre Julliard
julliard at winehq.org
Thu Jul 10 14:07:28 CDT 2008
Module: wine
Branch: master
Commit: 93e76ece37b1fa1330d83f446a3aebfb5198b744
URL: http://source.winehq.org/git/wine.git/?a=commit;h=93e76ece37b1fa1330d83f446a3aebfb5198b744
Author: Piotr Caban <piotr.caban at gmail.com>
Date: Thu Jul 10 15:22:21 2008 +0200
msxml3: oldChild in xmlnode_removeChild may be NULL.
---
dlls/msxml3/node.c | 7 +++++--
dlls/msxml3/tests/domdoc.c | 12 ++++++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index bdc9ac9..a33777f 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -625,7 +625,8 @@ static HRESULT WINAPI xmlnode_removeChild(
TRACE("%p->(%p, %p)\n", This, childNode, oldChild);
- *oldChild = NULL;
+ if(oldChild)
+ *oldChild = NULL;
if(!childNode) return E_INVALIDARG;
@@ -651,7 +652,9 @@ static HRESULT WINAPI xmlnode_removeChild(
IXMLDOMNode_Release(child);
IXMLDOMNode_AddRef(childNode);
- *oldChild = childNode;
+
+ if(oldChild)
+ *oldChild = childNode;
return S_OK;
}
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 3745fca..19a9a2f 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1769,6 +1769,18 @@ static void test_removeChild(void)
IXMLDOMNode_Release( node2 );
IXMLDOMNode_Release( node4 );
+
+ r = IXMLDOMNodeList_get_item( node_list, 0, &node4 );
+ ok( r == S_OK, "ret %08x\n", r);
+
+ r = IXMLDOMElement_removeChild( element, node4, NULL );
+ ok( r == S_OK, "ret %08x\n", r);
+
+ r = IXMLDOMNode_get_parentNode( node4, &node3 );
+ ok( r == S_FALSE, "ret %08x\n", r);
+ ok( node3 == NULL, "%p\n", node3 );
+
+ IXMLDOMNode_Release( node4 );
IXMLDOMNodeList_Release( node_list2 );
IXMLDOMNode_Release( node );
IXMLDOMNodeList_Release( node_list );
More information about the wine-cvs
mailing list