[PATCH v3 3/3] xmllite: Expand test for any unparsed data at end of XML.

Jeff Smith whydoubt at gmail.com
Thu Dec 5 13:53:26 CST 2019


Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
 dlls/xmllite/reader.c       | 3 ++-
 dlls/xmllite/tests/reader.c | 2 --
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c
index 79e5c2253a..c4b0fe521d 100644
--- a/dlls/xmllite/reader.c
+++ b/dlls/xmllite/reader.c
@@ -2562,6 +2562,7 @@ static HRESULT reader_parse_content(xmlreader *reader)
 
 static HRESULT reader_parse_nextnode(xmlreader *reader)
 {
+    const encoded_buffer *buffer = &reader->input->buffer->utf16;
     XmlNodeType nodetype = reader_get_nodetype(reader);
     HRESULT hr;
 
@@ -2662,7 +2663,7 @@ static HRESULT reader_parse_nextnode(xmlreader *reader)
             hr = reader_parse_misc(reader);
             if (hr != S_FALSE) return hr;
 
-            if (*reader_get_ptr(reader))
+            if (buffer->cur*sizeof(WCHAR) < buffer->written)
             {
                 WARN("found garbage in the end of XML\n");
                 return WC_E_SYNTAX;
diff --git a/dlls/xmllite/tests/reader.c b/dlls/xmllite/tests/reader.c
index b02301907d..7ad548d081 100644
--- a/dlls/xmllite/tests/reader.c
+++ b/dlls/xmllite/tests/reader.c
@@ -1051,7 +1051,6 @@ static void test_read_nul(void)
 
     type = -1;
     hr = IXmlReader_Read(reader, &type);
-todo_wine
     ok(hr == WC_E_SYNTAX || broken(hr == WC_E_XMLCHARACTER), "expected WC_E_SYNTAX, got 0x%08x\n", hr);
     ok(type == XmlNodeType_None, "expected XmlNodeType_None, got %s\n", type_to_str(type));
 
@@ -1077,7 +1076,6 @@ todo_wine
 
     type = -1;
     hr = IXmlReader_Read(reader, &type);
-todo_wine
     ok(hr == WC_E_SYNTAX || broken(hr == WC_E_XMLCHARACTER), "expected WC_E_SYNTAX, got 0x%08x\n", hr);
     ok(type == XmlNodeType_None, "expected XmlNodeType_None, got %s\n", type_to_str(type));
 
-- 
2.23.0




More information about the wine-devel mailing list