Module: wine Branch: master Commit: 0770ba61ceb81794e5d03b6d6c48597d1b67c7ae URL: https://gitlab.winehq.org/wine/wine/-/commit/0770ba61ceb81794e5d03b6d6c48597...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Tue Oct 3 17:08:16 2023 +1100
msxml3: IXMLDOMElement::selectSingleNode always assign a value to the output parameter.
---
dlls/msxml3/node.c | 3 +++ dlls/msxml3/tests/domdoc.c | 5 +++++ 2 files changed, 8 insertions(+)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 339504477ac..4e4a9cfd1ef 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -1560,6 +1560,9 @@ HRESULT node_select_singlenode(const xmlnode *This, BSTR query, IXMLDOMNode **no IXMLDOMNodeList *list; HRESULT hr;
+ if (node) + *node = NULL; + hr = node_select_nodes(This, query, &list); if (hr == S_OK) { diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 582c3ba6621..b2cddb5d140 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -2516,6 +2516,11 @@ static void test_domnode( void ) ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); ok( node == NULL, "node %p\n", node );
+ node = (void*)0xdeadbeef; + hr = IXMLDOMElement_selectSingleNode( element, _bstr_("In Valid"), &node ); + ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr); + ok( node == NULL, "node %p\n", node ); + str = SysAllocString(L"bs"); hr = IXMLDOMElement_selectSingleNode( element, str, &node ); SysFreeString(str);