Module: wine Branch: master Commit: de09e9b94ed340c8004a0919157a52fd90cb9f28 URL: http://source.winehq.org/git/wine.git/?a=commit;h=de09e9b94ed340c8004a091915...
Author: Nikolay Sivov nsivov@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;