]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmbeddedPkg/Application/AndroidFastboot/Arm/BootAndroidBootImg.c
EmbeddedPkg: Unload image on EFI_SECURITY_VIOLATION
[mirror_edk2.git] / EmbeddedPkg / Application / AndroidFastboot / Arm / BootAndroidBootImg.c
index 591afbe7ccbb3b0ab5838a6ff12d9eb88128afa3..fe05878b4b661da6052cd4ff825b62c0ec0c5942 100644 (file)
@@ -73,6 +73,15 @@ StartEfiApplication (
   Status = gBS->LoadImage (TRUE, ParentImageHandle, DevicePath, NULL, 0,\r
                   &ImageHandle);\r
   if (EFI_ERROR (Status)) {\r
+    //\r
+    // With EFI_SECURITY_VIOLATION retval, the Image was loaded and an ImageHandle was created\r
+    // with a valid EFI_LOADED_IMAGE_PROTOCOL, but the image can not be started right now.\r
+    // If the caller doesn't have the option to defer the execution of an image, we should\r
+    // unload image for the EFI_SECURITY_VIOLATION to avoid resource leak.\r
+    //\r
+    if (Status == EFI_SECURITY_VIOLATION) {\r
+      gBS->UnloadImage (ImageHandle);\r
+    }\r
     return Status;\r
   }\r
 \r