Module: wine Branch: master Commit: 86edbc8b14b5abc10db68c0735e52373d3393854 URL: https://source.winehq.org/git/wine.git/?a=commit;h=86edbc8b14b5abc10db68c073...
Author: Francois Gouget fgouget@codeweavers.com Date: Mon May 10 15:53:19 2021 +0200
infosoft/tests: Fix the infinite loop and crash on Windows 10 1607+.
The test only has expected data for the first four words. So abort if more are found.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/infosoft/tests/infosoft.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/dlls/infosoft/tests/infosoft.c b/dlls/infosoft/tests/infosoft.c index 12bf65a56d3..9ea79008364 100644 --- a/dlls/infosoft/tests/infosoft.c +++ b/dlls/infosoft/tests/infosoft.c @@ -70,11 +70,20 @@ static ULONG WINAPI ws_Release(IWordSink *iface) static HRESULT WINAPI ws_PutWord(IWordSink *iface, ULONG cwc, const WCHAR *pwcInBuf, ULONG cwcSrcLen, ULONG cwcSrcPos) { - ok(testres[wordnum].len == cwcSrcLen, "wrong length\n"); - ok(!cwcSrcPos ||(testres[wordnum].ofs == cwcSrcPos), "wrong offset\n"); - ok(!memcmp(testres[wordnum].data, pwcInBuf, cwcSrcLen), "wrong data\n"); + HRESULT rc = S_OK; + if (wordnum < ARRAY_SIZE(testres)) + { + ok(testres[wordnum].len == cwcSrcLen, "wrong length\n"); + ok(!cwcSrcPos ||(testres[wordnum].ofs == cwcSrcPos), "wrong offset\n"); + ok(!memcmp(testres[wordnum].data, pwcInBuf, cwcSrcLen), "wrong data\n"); + } + else + { + ok(0, "found too many words: %d\n", wordnum + 1); + rc = E_FAIL; + } wordnum++; - return S_OK; + return rc; }
static HRESULT WINAPI ws_PutAltWord(IWordSink *iface, ULONG cwc, const WCHAR *pwcInBuf,