Module: wine Branch: master Commit: c67f075d67a6d8de19dae570022265fc0f89ef52 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c67f075d67a6d8de19dae57002...
Author: Wolfram Sang wolfram@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;