Jefferson Carpenter : msxml3: Null check newNode in domelem insertBefore.
Module: wine Branch: master Commit: 653504a3cab39104928a67c6c6c055d786a31fc0 URL: https://source.winehq.org/git/wine.git/?a=commit;h=653504a3cab39104928a67c6c... Author: Jefferson Carpenter <jeffersoncarpenter2(a)gmail.com> Date: Thu May 27 12:40:08 2021 +0000 msxml3: Null check newNode in domelem insertBefore. Signed-off-by: Jefferson Carpenter <jeffersoncarpenter2(a)gmail.com> Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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;
participants (1)
-
Alexandre Julliard