From: Jeff Smith Subject: [PATCH v3 3/3] xmllite: Expand test for any unparsed data at end of XML. Message-Id: <20191205195326.928106-3-whydoubt@gmail.com> Date: Thu, 5 Dec 2019 13:53:26 -0600 In-Reply-To: <20191205195326.928106-1-whydoubt@gmail.com> References: <20191205195326.928106-1-whydoubt@gmail.com> Signed-off-by: Jeff Smith --- 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