From f50f05da231ab5f1f463cd5ba929bb77009d1141 Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Mon, 30 Jan 2012 07:30:15 -0600 Subject: [PATCH] usp10: Limit runs in ScriptStringAnalyse to 255. --- dlls/usp10/usp10.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index beecce991cd..13423036eb6 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -1772,19 +1772,12 @@ HRESULT WINAPI ScriptStringAnalyse(HDC hdc, const void *pString, int cString, hr = ScriptItemize(pString, cString, num_items, &sControl, &sState, analysis->pItem, &analysis->numItems); - while (hr == E_OUTOFMEMORY) + if FAILED(hr) { - SCRIPT_ITEM *tmp; - - num_items *= 2; - if (!(tmp = heap_realloc_zero(analysis->pItem, num_items * sizeof(SCRIPT_ITEM) + 1))) - goto error; - - analysis->pItem = tmp; - hr = ScriptItemize(pString, cString, num_items, psControl, psState, analysis->pItem, - &analysis->numItems); + if (hr == E_OUTOFMEMORY) + hr = E_INVALIDARG; + goto error; } - if (hr != S_OK) goto error; /* set back to out of memory for default goto error behaviour */ hr = E_OUTOFMEMORY; -- 2.11.4.GIT