]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Set *ImageHandle to NULL when LoadImage() returns EFI_ACCESS_DENIED.
authorniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 10 Jun 2011 03:05:40 +0000 (03:05 +0000)
committerniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 10 Jun 2011 03:05:40 +0000 (03:05 +0000)
Signed-off-by: niruiyu
Reviewed-by: jljusten
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11783 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Dxe/Image/Image.c

index c6a7081c1878a1aa6012938d89a226a61626ac8e..56d93ade805d863a246260013c4b774ab1af0139 100644 (file)
@@ -1086,6 +1086,13 @@ CoreLoadImageCommon (
                                   OriginalFilePath\r
                                   );\r
     if (EFI_ERROR (SecurityStatus) && SecurityStatus != EFI_SECURITY_VIOLATION) {\r
+      if (SecurityStatus == EFI_ACCESS_DENIED) {\r
+        //\r
+        // Image was not loaded because the platform policy prohibits the image from being loaded.\r
+        // It's the only place we could meet EFI_ACCESS_DENIED.\r
+        //\r
+        *ImageHandle = NULL;\r
+      }\r
       Status = SecurityStatus;\r
       Image = NULL;\r
       goto Done;\r
@@ -1237,7 +1244,6 @@ Done:
   if (EFI_ERROR (Status)) {\r
     if (Image != NULL) {\r
       CoreUnloadAndCloseImage (Image, (BOOLEAN)(DstBuffer == 0));\r
-      *ImageHandle = NULL;\r
     }\r
   } else if (EFI_ERROR (SecurityStatus)) {\r
     Status = SecurityStatus;\r