diff --git a/reactos/subsys/win32k/objects/dib.c b/reactos/subsys/win32k/objects/dib.c index 3646147f0dd..1d1285b3ba9 100644 --- a/reactos/subsys/win32k/objects/dib.c +++ b/reactos/subsys/win32k/objects/dib.c @@ -883,8 +883,15 @@ DIB_CreateDIBSection( if(bi->biBitCount == 4) { Entries = 16; } else if(bi->biBitCount == 8) { Entries = 256; } - bmp->ColorMap = ExAllocatePoolWithTag(PagedPool, sizeof(RGBQUAD)*Entries, TAG_COLORMAP); - RtlCopyMemory(bmp->ColorMap, bmi->bmiColors, sizeof(RGBQUAD)*Entries); + if (Entries) + { + bmp->ColorMap = ExAllocatePoolWithTag(PagedPool, sizeof(RGBQUAD)*Entries, TAG_COLORMAP); + RtlCopyMemory(bmp->ColorMap, bmi->bmiColors, sizeof(RGBQUAD)*Entries); + } + else + { + bmp->ColorMap = NULL; + } } // Clean up in case of errors