From: Royce Mitchell III Date: Sat, 18 Dec 2004 17:15:10 +0000 (+0000) Subject: BUGFIX: Missing error handling in IntSetDIBits() X-Git-Tag: backups/ELF_support@12700~2^2~137 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=4076ea8740c0309ca069aab1d9c5637a7dc93210 BUGFIX: Missing error handling in IntSetDIBits() svn path=/trunk/; revision=12184 --- diff --git a/reactos/subsys/win32k/objects/dib.c b/reactos/subsys/win32k/objects/dib.c index a68b14a2a1e..d3d1a7f1fb1 100644 --- a/reactos/subsys/win32k/objects/dib.c +++ b/reactos/subsys/win32k/objects/dib.c @@ -1,5 +1,5 @@ /* - * $Id: dib.c,v 1.57 2004/12/12 01:40:38 weiden Exp $ + * $Id: dib.c,v 1.58 2004/12/18 17:15:10 royce Exp $ * * ReactOS W32 Subsystem * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ReactOS Team @@ -159,7 +159,21 @@ IntSetDIBits( BitmapFormat(bmi->bmiHeader.biBitCount, bmi->bmiHeader.biCompression), 0 < bmi->bmiHeader.biHeight ? 0 : BMF_TOPDOWN, (PVOID) Bits); + if (0 == SourceBitmap) + { + BITMAPOBJ_UnlockBitmap(hBitmap); + SetLastWin32Error(ERROR_NO_SYSTEM_RESOURCES); + return 0; + } + SourceSurf = EngLockSurface((HSURF)SourceBitmap); + if (NULL == SourceSurf) + { + EngDeleteSurface((HSURF)SourceBitmap); + BITMAPOBJ_UnlockBitmap(hBitmap); + SetLastWin32Error(ERROR_NO_SYSTEM_RESOURCES); + return 0; + } // Destination palette obtained from the hDC hDCPalette = PALETTE_LockPalette(DC->DevInfo->hpalDefault);