return RETURN_UNSUPPORTED;\r
}\r
\r
+ if ((BmpHeader->PixelHeight == 0) || (BmpHeader->PixelWidth == 0)) {\r
+ DEBUG ((DEBUG_ERROR, "TranslateBmpToGopBlt: BmpHeader->PixelHeight or BmpHeader->PixelWidth is 0.\n"));\r
+ return RETURN_UNSUPPORTED;\r
+ }\r
+\r
//\r
// Only support BITMAPINFOHEADER format.\r
// BITMAPFILEHEADER + BITMAPINFOHEADER = BMP_IMAGE_HEADER\r
DEBUG ((\r
DEBUG_ERROR,\r
"TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth:0x%x PixelHeight:0x%x\n",\r
- BltBufferSize\r
+ BmpHeader->PixelWidth, BmpHeader->PixelHeight\r
));\r
\r
return RETURN_UNSUPPORTED;\r
if (EFI_ERROR (Status)) {\r
DEBUG ((\r
DEBUG_ERROR,\r
- "TranslateBmpToGopBlt: invalid BltBuffer needed size... BltBufferSize:0x%lx struct size:0x%x\n",\r
+ "TranslateBmpToGopBlt: invalid BltBuffer needed size... PixelWidth x PixelHeight:0x%x struct size:0x%x\n",\r
Temp, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
));\r
\r
\r
}\r
\r
- ImageIndex = (UINTN)(Image - ImageHeader);\r
+ ImageIndex = (UINTN)Image - (UINTN)ImageHeader;\r
if ((ImageIndex % 4) != 0) {\r
//\r
// Bmp Image starts each row on a 32-bit boundary!\r
return RETURN_INVALID_PARAMETER;\r
}\r
\r
+ if ((PixelHeight == 0) || (PixelWidth == 0)) {\r
+ return RETURN_UNSUPPORTED;\r
+ }\r
+\r
//\r
// Allocate memory for BMP file.\r
//\r