From f1f31fe9f29eccc0bbffbba368f5ca2803441ade Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Sun, 28 Sep 2008 19:42:03 +0000 Subject: [PATCH] Handle PALETTE_LockPalette returning NULL. Fixes Coverity CIDs 486 and 487. svn path=/trunk/; revision=36578 --- reactos/subsystems/win32/win32k/objects/dibobj.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/reactos/subsystems/win32/win32k/objects/dibobj.c b/reactos/subsystems/win32/win32k/objects/dibobj.c index a5b1607d5d2..4c96f5c4fda 100644 --- a/reactos/subsystems/win32/win32k/objects/dibobj.c +++ b/reactos/subsystems/win32/win32k/objects/dibobj.c @@ -62,6 +62,13 @@ IntSetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, CONST RGBQUAD *Color Entries = (1 << BitmapObj->dib->dsBmih.biBitCount) - StartIndex; PalGDI = PALETTE_LockPalette(BitmapObj->hDIBPalette); + if (PalGDI == NULL) + { + BITMAPOBJ_UnlockBitmap(BitmapObj); + DC_UnlockDc(dc); + SetLastWin32Error(ERROR_INVALID_HANDLE); + return 0; + } for (Index = StartIndex; Index < StartIndex + Entries && Index < PalGDI->NumColors; @@ -120,6 +127,13 @@ IntGetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, RGBQUAD *Colors) Entries = (1 << BitmapObj->dib->dsBmih.biBitCount) - StartIndex; PalGDI = PALETTE_LockPalette(BitmapObj->hDIBPalette); + if (PalGDI == NULL) + { + BITMAPOBJ_UnlockBitmap(BitmapObj); + DC_UnlockDc(dc); + SetLastWin32Error(ERROR_INVALID_HANDLE); + return 0; + } for (Index = StartIndex; Index < StartIndex + Entries && Index < PalGDI->NumColors;