Nikolay Sivov : msxml3/saxreader: Handle NULL interface input in parse().
Alexandre Julliard
julliard at winehq.org
Fri Mar 17 15:19:46 CDT 2017
Module: wine
Branch: master
Commit: ba018b52539aa594204c9234eb6c04196852ac78
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ba018b52539aa594204c9234eb6c04196852ac78
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Mar 17 08:23:57 2017 +0300
msxml3/saxreader: Handle NULL interface input in parse().
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msxml3/saxreader.c | 3 +++
dlls/msxml3/tests/saxreader.c | 10 ++++++++++
2 files changed, 13 insertions(+)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index 82241ad..0549bc8 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -2664,6 +2664,9 @@ static HRESULT internal_parse(
ISequentialStream *stream = NULL;
IXMLDOMDocument *xmlDoc;
+ if (!V_UNKNOWN(&varInput))
+ return E_INVALIDARG;
+
if(IUnknown_QueryInterface(V_UNKNOWN(&varInput),
&IID_IXMLDOMDocument, (void**)&xmlDoc) == S_OK)
{
diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index cabca9d..34d11e6 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -2221,6 +2221,16 @@ static void test_saxreader(void)
SafeArrayDestroy(sa);
+ V_VT(&var) = VT_UNKNOWN;
+ V_UNKNOWN(&var) = NULL;
+ hr = ISAXXMLReader_parse(reader, var);
+ ok(hr == E_INVALIDARG, "got %#x\n", hr);
+
+ V_VT(&var) = VT_DISPATCH;
+ V_DISPATCH(&var) = NULL;
+ hr = ISAXXMLReader_parse(reader, var);
+ ok(hr == E_INVALIDARG, "got %#x\n", hr);
+
stream = create_test_stream(testXML, -1);
V_VT(&var) = VT_UNKNOWN;
V_UNKNOWN(&var) = (IUnknown*)stream;
More information about the wine-cvs
mailing list