Wolfram Sang : user32: Check bitmap info before it is used.

Alexandre Julliard julliard at winehq.org
Mon Feb 28 11:02:10 CST 2011


Module: wine
Branch: master
Commit: c67f075d67a6d8de19dae570022265fc0f89ef52
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c67f075d67a6d8de19dae570022265fc0f89ef52

Author: Wolfram Sang <wolfram at the-dreams.de>
Date:   Thu Feb 24 22:12:09 2011 +0100

user32: Check bitmap info before it is used.

---

 dlls/user32/cursoricon.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index 2c9aeef..cd7d3ed 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -2198,6 +2198,14 @@ static HBITMAP BITMAP_Load( HINSTANCE instance, LPCWSTR name,
         if (bmfh->bfOffBits) offbits = bmfh->bfOffBits - sizeof(BITMAPFILEHEADER);
     }
 
+    bm_type = DIB_GetBitmapInfo( &info->bmiHeader, &width, &height,
+                                 &bpp_dummy, &compr_dummy);
+    if (bm_type == -1)
+    {
+        WARN("Invalid bitmap format!\n");
+        goto end;
+    }
+
     size = bitmap_info_size(info, DIB_RGB_COLORS);
     fix_info = HeapAlloc(GetProcessHeap(), 0, size);
     scaled_info = HeapAlloc(GetProcessHeap(), 0, size);
@@ -2209,13 +2217,6 @@ static HBITMAP BITMAP_Load( HINSTANCE instance, LPCWSTR name,
     DIB_FixColorsToLoadflags(fix_info, loadflags, pix);
 
     memcpy(scaled_info, fix_info, size);
-    bm_type = DIB_GetBitmapInfo( &fix_info->bmiHeader, &width, &height,
-                                 &bpp_dummy, &compr_dummy);
-    if (bm_type == -1)
-    {
-        WARN("Invalid bitmap format!\n");
-        goto end;
-    }
 
     if(desiredx != 0)
         new_width = desiredx;




More information about the wine-cvs mailing list