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 5e3ded2c5cc..782e4ec591c 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -745,6 +745,10 @@ static HRESULT WINAPI HTMLDOMNode_appendChild(IHTMLDOMNode *iface, IHTMLDOMNode TRACE("(%p)->(%p %p)\n", This, newChild, node); + *node = NULL; + if(!newChild) + return E_INVALIDARG; + node_obj = get_node_obj(newChild); if(!node_obj) return E_FAIL; diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 8dc197efb56..1cdc1e3146d 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -5600,9 +5600,14 @@ static IHTMLDOMNode *_test_node_append_child(unsigned line, IUnknown *node_unk, { IHTMLDOMNode *node = _get_node_iface(line, node_unk); IHTMLDOMNode *child = _get_node_iface(line, child_unk); - IHTMLDOMNode *new_child = NULL; + IHTMLDOMNode *new_child = (void*)0xdeadbeef; HRESULT hres; + hres = IHTMLDOMNode_appendChild(node, NULL, &new_child); + ok_(__FILE__,line) (hres == E_INVALIDARG, "appendChild returned: %08lx\n", hres); + ok_(__FILE__,line) (new_child == NULL, "new_child != NULL\n"); + + new_child = NULL; hres = IHTMLDOMNode_appendChild(node, child, &new_child); ok_(__FILE__,line) (hres == S_OK, "appendChild failed: %08lx\n", hres); ok_(__FILE__,line) (new_child != NULL, "new_child == NULL\n"); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/8637