fix redzone overwrite when launching solitaire

ntoskrnl\mm\/rpoolmgr.h(707): High-side redzone overwrite detected for paged pool address 0x8d882000
Tag   th(68742020), Size 4148, UserSize 4096, LoZone 87878787, HiZone 00000000

svn path=/trunk/; revision=31121
This commit is contained in:
Christoph von Wittich 2007-12-10 09:57:30 +00:00
parent 13dc179a11
commit f02a249d62

View file

@ -121,6 +121,7 @@ IntSetPalette(
pClut->FirstEntry = iStart; pClut->FirstEntry = iStart;
pClut->NumEntries = cColors; pClut->NumEntries = cColors;
memcpy(&pClut->LookupTable[0].RgbLong, ppalent, sizeof(ULONG) * cColors); memcpy(&pClut->LookupTable[0].RgbLong, ppalent, sizeof(ULONG) * cColors);
EngFreeMem(ppalent);
if (((PPDEV)dhpdev)->PaletteShift) if (((PPDEV)dhpdev)->PaletteShift)
{ {
@ -176,6 +177,9 @@ DrvSetPalette(
{ {
PPALETTEENTRY PaletteEntries; PPALETTEENTRY PaletteEntries;
if (cColors == 0)
return FALSE;
PaletteEntries = EngAllocMem(0, cColors * sizeof(ULONG), ALLOC_TAG); PaletteEntries = EngAllocMem(0, cColors * sizeof(ULONG), ALLOC_TAG);
if (PaletteEntries == NULL) if (PaletteEntries == NULL)
{ {
@ -185,6 +189,7 @@ DrvSetPalette(
if (PALOBJ_cGetColors(ppalo, iStart, cColors, (PULONG)PaletteEntries) != if (PALOBJ_cGetColors(ppalo, iStart, cColors, (PULONG)PaletteEntries) !=
cColors) cColors)
{ {
EngFreeMem(PaletteEntries);
return FALSE; return FALSE;
} }