diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index 384f085753f112ae2bebc3ece150814c994a799b..45fe151837c70c243839e7415ae23e3bf7e3eeb2 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -1369,16 +1369,17 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam) static LRESULT TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam) { +#define MAX_RESOURCE_STRING_LENGTH 512 TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd); INT nIndex; if ((wParam) && (HIWORD(lParam) == 0)) { - WCHAR szString[256]; + WCHAR szString[MAX_RESOURCE_STRING_LENGTH]; INT len; TRACE("adding string from resource!\n"); len = LoadStringW ((HINSTANCE)wParam, (UINT)lParam, - szString, 256); + szString, MAX_RESOURCE_STRING_LENGTH); TRACE("len=%d \"%s\"\n", len, debugstr_w(szString)); TRACE("First char: 0x%x\n", *szString); @@ -1406,7 +1407,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam) TRACE("len=%d \"%s\"\n", len, debugstr_w(p)); infoPtr->strings[infoPtr->nNumStrings] = COMCTL32_Alloc (sizeof(WCHAR)*(len+1)); - lstrcpyW (infoPtr->strings[infoPtr->nNumStrings], p); + lstrcpynW (infoPtr->strings[infoPtr->nNumStrings], p, len); infoPtr->nNumStrings++; p += (len+1);