[PATCH] comctl32: toolbar: Str_SetPtr* assumes the destination pointer points to allocated memory or is NULL

Mikołaj Zalewski mikolaj at zalewski.pl
Fri Jan 23 16:08:17 CST 2009


---
 dlls/comctl32/toolbar.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index fb2745f..a1969e9 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -2859,6 +2859,7 @@ TOOLBAR_AddButtonsT(HWND hwnd, WPARAM wParam, LPARAM lParam, BOOL fUnicode)
 	btnPtr->fsStyle   = lpTbb[nCount].fsStyle;
 	btnPtr->dwData    = lpTbb[nCount].dwData;
 	btnPtr->bHot      = FALSE;
+	btnPtr->iString   = 0;
         if(HIWORD(lpTbb[nCount].iString) && lpTbb[nCount].iString != -1)
         {
             if (fUnicode)
@@ -2924,6 +2925,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam)
             }
 
             infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1));
+            infoPtr->strings[infoPtr->nNumStrings] = NULL;
             Str_SetPtrW(&infoPtr->strings[infoPtr->nNumStrings], p);
             infoPtr->nNumStrings++;
 
@@ -2942,6 +2944,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam)
 
             TRACE("len=%d %s\n", len, debugstr_w(p));
             infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1));
+            infoPtr->strings[infoPtr->nNumStrings] = NULL;
             Str_SetPtrW (&infoPtr->strings[infoPtr->nNumStrings], p);
 	    infoPtr->nNumStrings++;
 
@@ -2978,6 +2981,7 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
         TRACE("len=%d \"%s\"\n", len, p);
 
         infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1));
+        infoPtr->strings[infoPtr->nNumStrings] = NULL;
         Str_SetPtrAtoW(&infoPtr->strings[infoPtr->nNumStrings], p);
         infoPtr->nNumStrings++;
 
@@ -3793,6 +3797,7 @@ TOOLBAR_InsertButtonT(HWND hwnd, WPARAM wParam, LPARAM lParam, BOOL fUnicode)
     infoPtr->buttons[nIndex].fsState   = lpTbb->fsState;
     infoPtr->buttons[nIndex].fsStyle   = lpTbb->fsStyle;
     infoPtr->buttons[nIndex].dwData    = lpTbb->dwData;
+    infoPtr->buttons[nIndex].iString   = 0;
     /* if passed string and not index, then add string */
     if(HIWORD(lpTbb->iString) && lpTbb->iString!=-1) {
         if (fUnicode)
-- 
1.5.4


--------------050202010309090203040207--



More information about the wine-patches mailing list