]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/Image/Image.c
MdeModulePkg: Refine casting expression result to bigger size
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / Image / Image.c
index 351382b0f24782aad11d0046386c1860a10fccfb..80128e729b43112548acd57793de12327c529800 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Core image handling services to load and unload PeImage.\r
 \r
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -203,6 +203,8 @@ CoreInitializeImageServices (
                );\r
   }\r
 \r
+  ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);\r
+\r
   return Status;\r
 }\r
 \r
@@ -311,8 +313,8 @@ CheckAndMarkFixLoadingMemoryUsageBitMap (
    //\r
    // Test if the memory is avalaible or not.\r
    // \r
-   BaseOffsetPageNumber = (UINTN)EFI_SIZE_TO_PAGES((UINT32)(ImageBase - DxeCodeBase));\r
-   TopOffsetPageNumber  = (UINTN)EFI_SIZE_TO_PAGES((UINT32)(ImageBase + ImageSize - DxeCodeBase));\r
+   BaseOffsetPageNumber = EFI_SIZE_TO_PAGES((UINT32)(ImageBase - DxeCodeBase));\r
+   TopOffsetPageNumber  = EFI_SIZE_TO_PAGES((UINT32)(ImageBase + ImageSize - DxeCodeBase));\r
    for (Index = BaseOffsetPageNumber; Index < TopOffsetPageNumber; Index ++) {\r
      if ((mDxeCodeMemoryRangeUsageBitMap[Index / 64] & LShiftU64(1, (Index % 64))) != 0) {\r
        //\r
@@ -364,12 +366,10 @@ GetPeCoffImageFixLoadingAssignedAddress(
    //\r
    Handle = (IMAGE_FILE_HANDLE*)ImageContext->Handle;\r
    ImgHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)((CHAR8* )Handle->Source + ImageContext->PeCoffHeaderOffset);\r
-   SectionHeaderOffset = (UINTN)(\r
-                                 ImageContext->PeCoffHeaderOffset +\r
-                                 sizeof (UINT32) +\r
-                                 sizeof (EFI_IMAGE_FILE_HEADER) +\r
-                                 ImgHdr->Pe32.FileHeader.SizeOfOptionalHeader\r
-                                 );\r
+   SectionHeaderOffset = ImageContext->PeCoffHeaderOffset +\r
+                         sizeof (UINT32) +\r
+                         sizeof (EFI_IMAGE_FILE_HEADER) +\r
+                         ImgHdr->Pe32.FileHeader.SizeOfOptionalHeader;\r
    NumberOfSections = ImgHdr->Pe32.FileHeader.NumberOfSections;\r
 \r
    //\r
@@ -507,7 +507,7 @@ CoreLoadPeImage (
   }\r
 \r
   //\r
-  // Allocate memory of the correct memory type aligned on the required image boundry\r
+  // Allocate memory of the correct memory type aligned on the required image boundary\r
   //\r
   DstBufAlocated = FALSE;\r
   if (DstBuffer == 0) {\r
@@ -862,6 +862,8 @@ CoreUnloadAndCloseImage (
     UnregisterMemoryProfileImage (Image);\r
   }\r
 \r
+  UnprotectUefiImage (&Image->Info, Image->LoadedImageDevicePath);\r
+\r
   if (Image->Ebc != NULL) {\r
     //\r
     // If EBC protocol exists we must perform cleanups for this image.\r
@@ -1341,6 +1343,7 @@ CoreLoadImageCommon (
       goto Done;\r
     }\r
   }\r
+  ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);\r
 \r
   //\r
   // Success.  Return the image handle\r
@@ -1857,7 +1860,7 @@ Done:
                                   unloaded.\r
 \r
   @retval EFI_SUCCESS             The image has been unloaded.\r
-  @retval EFI_UNSUPPORTED         The image has been sarted, and does not support\r
+  @retval EFI_UNSUPPORTED         The image has been started, and does not support\r
                                   unload.\r
   @retval EFI_INVALID_PARAMPETER  ImageHandle is not a valid image handle.\r
 \r