From: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> --- dlls/mshtml/htmlnode.c | 4 ++++ dlls/mshtml/tests/dom.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c index f06c7609288..5e3ded2c5cc 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -619,6 +619,10 @@ static HRESULT WINAPI HTMLDOMNode_removeChild(IHTMLDOMNode *iface, IHTMLDOMNode TRACE("(%p)->(%p %p)\n", This, oldChild, node); + *node = NULL; + if(!oldChild) + return E_INVALIDARG; + node_obj = get_node_obj(oldChild); if(!node_obj) return E_FAIL; diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index b58278b6169..8dc197efb56 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -5642,9 +5642,14 @@ static IHTMLDOMNode *_test_node_insertbefore(unsigned line, IUnknown *node_unk, static void _test_node_remove_child(unsigned line, IUnknown *unk, IHTMLDOMNode *child) { IHTMLDOMNode *node = _get_node_iface(line, unk); - IHTMLDOMNode *new_node = NULL; + IHTMLDOMNode *new_node = (void*)0xdeadbeef; HRESULT hres; + hres = IHTMLDOMNode_removeChild(node, NULL, &new_node); + ok_(__FILE__,line) (hres == E_INVALIDARG, "removeChild returned: %08lx\n", hres); + ok_(__FILE__,line) (new_node == NULL, "new_node != NULL\n"); + + new_node = NULL; hres = IHTMLDOMNode_removeChild(node, child, &new_node); ok_(__FILE__,line) (hres == S_OK, "removeChild failed: %08lx\n", hres); ok_(__FILE__,line) (new_node != NULL, "new_node == NULL\n"); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8637