From ff752456e123ded9d77a4654b7889709638a7aaa Mon Sep 17 00:00:00 2001 From: Evan Stade Date: Thu, 9 Aug 2007 18:25:27 -0700 Subject: [PATCH] gdiplus: Better error checking in GdipBitmapLockBits. --- dlls/gdiplus/image.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index a6cf6719e9..633b2257ca 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -142,16 +142,20 @@ GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap* bitmap, GDIPCONST GpRect* rect, stride = (stride + 3) & ~3; buff = GdipAlloc(stride * abs_height); - if(!buff) return OutOfMemory; bmi.bmiHeader.biBitCount = bitspp; - GetDIBits(hdc, (HBITMAP)hbm, 0, abs_height, buff, &bmi, DIB_RGB_COLORS); + + if(buff) + GetDIBits(hdc, (HBITMAP)hbm, 0, abs_height, buff, &bmi, DIB_RGB_COLORS); if(!bm_is_selected){ SelectObject(hdc, old); DeleteDC(hdc); } + if(!buff) + return OutOfMemory; + lockeddata->Width = rect->Width; lockeddata->Height = rect->Height; lockeddata->PixelFormat = format;