Dmitry Timoshkov : msxml3/tests: Don't '\0' terminate output after ::save().

Alexandre Julliard julliard at winehq.org
Fri May 7 15:42:04 CDT 2021


Module: wine
Branch: master
Commit: ee49f13ab2c6d1f0f2e970b272880d3cf4a7c3f8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=ee49f13ab2c6d1f0f2e970b272880d3cf4a7c3f8

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue Apr 27 12:29:39 2021 +0300

msxml3/tests: Don't '\0' terminate output after ::save().

This fixes heap corruption when running the domdoc tests.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msxml3/tests/domdoc.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 6f8e2b44ed3..ba8453430c6 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -8586,8 +8586,7 @@ todo_wine
     hr = GetHGlobalFromStream(stream, &global);
     ok(hr == S_OK, "got 0x%08x\n", hr);
     p = GlobalLock(global);
-    p[GlobalSize(global)] = 0;
-    ok(!strcmp(p, xml2) || !strcmp(p, xml2_wine), "got %s\n", wine_dbgstr_a(p));
+    ok(!memcmp(p, xml2, sizeof(xml2) - 1) || !memcmp(p, xml2_wine, sizeof(xml2_wine) - 1), "got %s\n", wine_dbgstr_a(p));
     GlobalUnlock(global);
 
     /* Verify the result after load+save */
@@ -8609,8 +8608,7 @@ todo_wine
     hr = GetHGlobalFromStream(stream, &global);
     ok(hr == S_OK, "got 0x%08x\n", hr);
     p = GlobalLock(global);
-    p[GlobalSize(global)] = 0;
-    ok(!strcmp(p, xml2) || !strcmp(p, xml2_wine), "got %s\n", wine_dbgstr_a(p));
+    ok(!memcmp(p, xml2, sizeof(xml2) - 1) || !memcmp(p, xml2_wine, sizeof(xml2_wine) - 1), "got %s\n", wine_dbgstr_a(p));
     GlobalUnlock(global);
 
     IStream_Release(stream);
@@ -8631,8 +8629,7 @@ todo_wine
     ok(hr == S_OK, "got 0x%08x\n", hr);
 
     p = GlobalLock(global);
-    p[GlobalSize(global)] = 0;
-    ok(!strcmp(p, xml3) || !strcmp(p, xml3_wine), "got %s\n", wine_dbgstr_a(p));
+    ok(!memcmp(p, xml3, sizeof(xml3) - 1) || !memcmp(p, xml3_wine, sizeof(xml3_wine) - 1), "got %s\n", wine_dbgstr_a(p));
     GlobalUnlock(global);
 
     IStream_Release(stream);




More information about the wine-cvs mailing list