comctl32/tests: Don't over-allocate memory for a BITMAPINFO.

Michael Stefaniuc mstefani at redhat.de
Tue Dec 11 06:38:58 CST 2012


---
 dlls/comctl32/tests/imagelist.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/comctl32/tests/imagelist.c b/dlls/comctl32/tests/imagelist.c
index 98b84a6..4221509 100644
--- a/dlls/comctl32/tests/imagelist.c
+++ b/dlls/comctl32/tests/imagelist.c
@@ -782,7 +782,7 @@ static void check_ilhead_data(const char *ilh_data, INT cx, INT cy, INT cur, INT
 static HBITMAP create_bitmap(INT cx, INT cy, COLORREF color, const char *comment)
 {
     HDC hdc;
-    char bmibuf[sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD)];
+    char bmibuf[FIELD_OFFSET(BITMAPINFO, bmiColors[256])];
     BITMAPINFO *bmi = (BITMAPINFO *)bmibuf;
     HBITMAP hbmp, hbmp_old;
     HBRUSH hbrush;
@@ -790,7 +790,7 @@ static HBITMAP create_bitmap(INT cx, INT cy, COLORREF color, const char *comment
 
     hdc = CreateCompatibleDC(0);
 
-    memset(bmi, 0, sizeof(*bmi));
+    memset(bmibuf, 0, sizeof(bmibuf));
     bmi->bmiHeader.biSize = sizeof(bmi->bmiHeader);
     bmi->bmiHeader.biHeight = cx;
     bmi->bmiHeader.biWidth = cy;
-- 
1.7.7.6



More information about the wine-patches mailing list