From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@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");