]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Library/EdkGraphicsLib/Graphics.c
1. In event.c, a function's name is not spelled correctly, a typo.
[mirror_edk2.git] / EdkModulePkg / Library / EdkGraphicsLib / Graphics.c
index 01c612abd339bfc258e85c6070324ddf1be64b75..52936e3c40ae29de34b17362baacd7789f78f75c 100644 (file)
@@ -159,7 +159,8 @@ Returns:
   UINTN             Height;\r
   UINTN             Width;\r
   UINTN             ImageIndex;\r
-\r
+  BOOLEAN           IsAllocated;\r
+  \r
   BmpHeader = (BMP_IMAGE_HEADER *) BmpImage;\r
   if (BmpHeader->CharB != 'B' || BmpHeader->CharM != 'M') {\r
     return EFI_UNSUPPORTED;\r
@@ -182,12 +183,14 @@ Returns:
   ImageHeader   = Image;\r
 \r
   BltBufferSize = BmpHeader->PixelWidth * BmpHeader->PixelHeight * sizeof (EFI_UGA_PIXEL);\r
+  IsAllocated   = FALSE;\r
   if (*UgaBlt == NULL) {\r
     *UgaBltSize = BltBufferSize;\r
     *UgaBlt     = AllocatePool (*UgaBltSize);\r
     if (*UgaBlt == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
+    IsAllocated = TRUE;\r
   } else {\r
     if (*UgaBltSize < BltBufferSize) {\r
       *UgaBltSize = BltBufferSize;\r
@@ -256,6 +259,10 @@ Returns:
         break;\r
 \r
       default:\r
+        if (IsAllocated) {\r
+          gBS->FreePool (*UgaBlt);\r
+          *UgaBlt = NULL;\r
+        }\r
         return EFI_UNSUPPORTED;\r
         break;\r
       };\r