Jefferson Carpenter : msxml3: Null check newNode in domelem insertBefore.

Alexandre Julliard julliard at winehq.org
Tue Jun 1 16:04:32 CDT 2021


Module: wine
Branch: master
Commit: 653504a3cab39104928a67c6c6c055d786a31fc0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=653504a3cab39104928a67c6c6c055d786a31fc0

Author: Jefferson Carpenter <jeffersoncarpenter2 at gmail.com>
Date:   Thu May 27 12:40:08 2021 +0000

msxml3: Null check newNode in domelem insertBefore.

Signed-off-by: Jefferson Carpenter <jeffersoncarpenter2 at gmail.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/element.c      | 2 ++
 dlls/msxml3/tests/domdoc.c | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 05255508d4e..5891653a76f 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -309,6 +309,8 @@ static HRESULT WINAPI domelem_insertBefore(
 
     TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), old_node);
 
+    if (!newNode) return E_INVALIDARG;
+
     hr = IXMLDOMNode_get_nodeType(newNode, &type);
     if (hr != S_OK) return hr;
 
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index ea8a95252a1..b1f172e3faa 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -9411,6 +9411,13 @@ static void test_insertBefore(void)
 
     todo_wine EXPECT_REF(elem2, 2);
 
+    /* NULL to element */
+    V_VT(&v) = VT_NULL;
+    node = (void*)0xdeadbeef;
+    hr = IXMLDOMElement_insertBefore(elem1, NULL, v, &node);
+    ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
+    ok(node == (void*)0xdeadbeef, "got %p\n", node);
+
     /* document to element */
     V_VT(&v) = VT_DISPATCH;
     V_DISPATCH(&v) = NULL;




More information about the wine-cvs mailing list