[PATCH 2/2] msxml3: IVBSAXContentHandler::startElement() should also check *namespaceURI for NULL.

Dmitry Timoshkov dmitry at baikal.ru
Thu May 20 11:42:42 CDT 2021


Like ISAXContentHandler::startElement() does.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/msxml3/mxwriter.c        | 4 ++--
 dlls/msxml3/tests/saxreader.c | 4 ----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c
index ac3c0fa59c3..b1ca5a0ca41 100644
--- a/dlls/msxml3/mxwriter.c
+++ b/dlls/msxml3/mxwriter.c
@@ -2159,8 +2159,8 @@ static HRESULT WINAPI VBSAXContentHandler_startElement(IVBSAXContentHandler *ifa
 
     TRACE("(%p)->(%p %p %p %p)\n", This, namespaceURI, localName, QName, attrs);
 
-    if (!namespaceURI || !localName || !QName)
-        return E_POINTER;
+    if (!namespaceURI || !*namespaceURI || !localName || !QName)
+        return E_INVALIDARG;
 
     TRACE("(%s %s %s)\n", debugstr_w(*namespaceURI), debugstr_w(*localName), debugstr_w(*QName));
 
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index f2016e3132d..e401aafc87d 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -3852,7 +3852,6 @@ static void test_mxwriter_startendelement(void)
     bstr_ab = SysAllocString(L"a:b");
 
     hr = IVBSAXContentHandler_startElement(vb_content, &bstr_null, &bstr_empty, &bstr_b, NULL);
-todo_wine
     ok(hr == E_INVALIDARG, "got %08x\n", hr);
 
     hr = IVBSAXContentHandler_startElement(vb_content, &bstr_empty, &bstr_b, &bstr_empty, NULL);
@@ -3862,7 +3861,6 @@ todo_wine
     hr = IMXWriter_get_output(writer, &dest);
     ok(hr == S_OK, "got %08x\n", hr);
     ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
-todo_wine
     ok(!lstrcmpW(L"<>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
     VariantClear(&dest);
 
@@ -3873,7 +3871,6 @@ todo_wine
     hr = IMXWriter_get_output(writer, &dest);
     ok(hr == S_OK, "got %08x\n", hr);
     ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
-todo_wine
     ok(!lstrcmpW(L"<><b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
     VariantClear(&dest);
 
@@ -3899,7 +3896,6 @@ todo_wine
     hr = IMXWriter_get_output(writer, &dest);
     ok(hr == S_OK, "got %08x\n", hr);
     ok(V_VT(&dest) == VT_BSTR, "got %d\n", V_VT(&dest));
-todo_wine
     ok(!lstrcmpW(L"<><b></b>", V_BSTR(&dest)), "got wrong content %s\n", wine_dbgstr_w(V_BSTR(&dest)));
     VariantClear(&dest);
 
-- 
2.31.1




More information about the wine-devel mailing list