Nikolay Sivov : dwrite/tests: Fix buffer overflow when filling test string.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jan 6 15:05:17 CST 2015


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Jan  6 19:45:04 2015 +0300

dwrite/tests: Fix buffer overflow when filling test string.

---

 dlls/dwrite/tests/layout.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index b90d7af..1a1cfd9 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -927,7 +927,7 @@ todo_wine {
 static void test_SetLocaleName(void)
 {
     static const WCHAR strW[] = {'a','b','c','d',0};
-    WCHAR buffW[LOCALE_NAME_MAX_LENGTH+5];
+    WCHAR buffW[LOCALE_NAME_MAX_LENGTH+sizeof(strW)/sizeof(WCHAR)];
     IDWriteTextFormat *format;
     IDWriteTextLayout *layout;
     DWRITE_TEXT_RANGE range;
@@ -971,10 +971,8 @@ if (0) /* crashes on native */
 
     /* name is too long */
     lstrcpyW(buffW, strW);
-    while (lstrlenW(buffW) < LOCALE_NAME_MAX_LENGTH) {
+    while (lstrlenW(buffW) <= LOCALE_NAME_MAX_LENGTH)
         lstrcatW(buffW, strW);
-    }
-    lstrcatW(buffW, strW);
 
     range.startPosition = 0;
     range.length = 1;




More information about the wine-cvs mailing list