[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