Refine code to make code run safely.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10880 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c
index 09b58ac..d5614b2 100644
--- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c
+++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c
@@ -1127,7 +1127,7 @@
     //

     if ((Aperture & 0x02) != 0) {

       Ptr->Desc     = ACPI_ADDRESS_SPACE_DESCRIPTOR;

-      Ptr->Len      = sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3;

+      Ptr->Len      = (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);

       //

       // Mem

       //

@@ -1151,7 +1151,7 @@
     //

     if ((Aperture & 0x04) != 0) {

       Ptr->Desc     = ACPI_ADDRESS_SPACE_DESCRIPTOR;

-      Ptr->Len      = sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3;

+      Ptr->Len      = (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);

       //

       // Mem

       //

@@ -1174,7 +1174,7 @@
     //

     if ((Aperture & 0x08) != 0) {

       Ptr->Desc     = ACPI_ADDRESS_SPACE_DESCRIPTOR;

-      Ptr->Len      = sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3;

+      Ptr->Len      = (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);

       //

       // Mem

       //

@@ -1197,7 +1197,7 @@
     //

     if ((Aperture & 0x10) != 0) {

       Ptr->Desc     = ACPI_ADDRESS_SPACE_DESCRIPTOR;

-      Ptr->Len      = sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3;

+      Ptr->Len      = (UINT16) (sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);

       //

       // Mem

       //

diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c
index 81f78cb..cb892e3 100644
--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c
+++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.c
@@ -197,12 +197,12 @@
     return NULL;

   }

 

-  Desc = AllocateZeroPool (CtrlLen);

+  Desc = AllocateZeroPool ((UINTN) CtrlLen);

   if (Desc == NULL) {

     return NULL;

   }

 

-  CopyMem (Desc, Head, DescLen);

+  CopyMem (Desc, Head, (UINTN) DescLen);

 

   *Consumed = Offset + Head->Len;

 

diff --git a/MdeModulePkg/Core/Dxe/Event/Tpl.c b/MdeModulePkg/Core/Dxe/Event/Tpl.c
index 7fe9b12..240e8e4 100644
--- a/MdeModulePkg/Core/Dxe/Event/Tpl.c
+++ b/MdeModulePkg/Core/Dxe/Event/Tpl.c
@@ -118,7 +118,7 @@
   // Dispatch any pending events

   //

   while (((-2 << NewTpl) & gEventPending) != 0) {

-    gEfiCurrentTpl = HighBitSet64 (gEventPending);

+    gEfiCurrentTpl = (UINTN) HighBitSet64 (gEventPending);

     if (gEfiCurrentTpl < TPL_HIGH_LEVEL) {

       CoreSetInterruptState (TRUE);

     }

diff --git a/MdeModulePkg/Core/Dxe/Hand/Locate.c b/MdeModulePkg/Core/Dxe/Hand/Locate.c
index 9714f64..df7fa8f 100644
--- a/MdeModulePkg/Core/Dxe/Hand/Locate.c
+++ b/MdeModulePkg/Core/Dxe/Hand/Locate.c
@@ -490,7 +490,8 @@
     // Check if DevicePath is first part of SourcePath

     //

     Size = GetDevicePathSize (TmpDevicePath) - sizeof(EFI_DEVICE_PATH_PROTOCOL);

-    if ((Size <= SourceSize) && CompareMem (SourcePath, TmpDevicePath, Size) == 0) {

+    ASSERT (Size >= 0);

+    if ((Size <= SourceSize) && CompareMem (SourcePath, TmpDevicePath, (UINTN) Size) == 0) {

       //

       // If the size is equal to the best match, then we

       // have a duplicate device path for 2 different device

diff --git a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
index bdea068..e6f732d 100644
--- a/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
+++ b/MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsole.c
@@ -816,8 +816,8 @@
 

   MaxColumn = Private->ModeData[Mode].Columns;

   MaxRow    = Private->ModeData[Mode].Rows;

-  DeltaX    = Private->ModeData[Mode].DeltaX;

-  DeltaY    = Private->ModeData[Mode].DeltaY;

+  DeltaX    = (UINTN) Private->ModeData[Mode].DeltaX;

+  DeltaY    = (UINTN) Private->ModeData[Mode].DeltaY;

   Width     = MaxColumn * EFI_GLYPH_WIDTH;

   Height    = (MaxRow - 1) * EFI_GLYPH_HEIGHT;

   Delta     = Width * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL);

diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
index c80f1db..534c564 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Database.c
@@ -86,7 +86,7 @@
   // Backup the number of Hii handles

   //

   Private->HiiHandleCount++;

-  HiiHandle->Key = Private->HiiHandleCount;

+  HiiHandle->Key = (UINTN) Private->HiiHandleCount;

   //

   // Insert the handle to hii handle list of the whole database.

   //

diff --git a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.c b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.c
index e8e127d..0884026 100644
--- a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.c
+++ b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.c
@@ -467,7 +467,7 @@
 {

   EFI_DHCP4_PACKET_OPTION   **DstOptions;

   EFI_DHCP4_PACKET_OPTION   **SrcOptions;

-  INTN                      Len;

+  UINTN                     Len;

   UINT32                    Index;

 

   CopyMem (Dst, Src, sizeof (*Dst));

diff --git a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Option.c b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Option.c
index ff48bec..d7700bc 100644
--- a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Option.c
+++ b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Option.c
@@ -611,7 +611,7 @@
   // Allocate a buffer to hold the DHCP options, and after that, a

   // continuous buffer to put all the options' data.

   //

-  Options = AllocateZeroPool (OptNum * sizeof (DHCP_OPTION) + TotalLen);

+  Options = AllocateZeroPool ((UINTN) (OptNum * sizeof (DHCP_OPTION)) + TotalLen);

 

   if (Options == NULL) {

     Status = EFI_OUT_OF_RESOURCES;

@@ -754,7 +754,7 @@
 

     *(Buf++) = Tag;

     *(Buf++) = (UINT8) Len;

-    CopyMem (Buf, Data + Index * 255, Len);

+    CopyMem (Buf, Data + Index * 255, (UINTN) Len);

 

     Buf     += Len;

   }

diff --git a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Support.c b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Support.c
index bb4ce0a..26860e5 100644
--- a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Support.c
+++ b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Support.c
@@ -223,7 +223,7 @@
 	  *TotalBlock  = Num;

 	  

       if (Range->Round > 0) {

-	    *TotalBlock += Range->Bound +  MultU64x32 (Range->Round -1, (UINT32)(Range->Bound + 1)) + 1;

+	    *TotalBlock += Range->Bound +  MultU64x32 ((UINTN) (Range->Round -1), (UINT32) (Range->Bound + 1)) + 1;

 	  }

 

       if (Range->Start > Range->Bound) {

diff --git a/MdeModulePkg/Universal/Network/SnpDxe/Transmit.c b/MdeModulePkg/Universal/Network/SnpDxe/Transmit.c
index ac6b664..e6c5af7 100644
--- a/MdeModulePkg/Universal/Network/SnpDxe/Transmit.c
+++ b/MdeModulePkg/Universal/Network/SnpDxe/Transmit.c
@@ -90,7 +90,7 @@
   Snp->Cdb.DBsize     = PXE_DBSIZE_NOT_USED;

   Snp->Cdb.DBaddr     = PXE_DBADDR_NOT_USED;

 

-  Snp->Cdb.CPBsize    = sizeof (PXE_CPB_FILL_HEADER_FRAGMENTED);

+  Snp->Cdb.CPBsize    = (UINT16) sizeof (PXE_CPB_FILL_HEADER_FRAGMENTED);

   Snp->Cdb.CPBaddr    = (UINT64)(UINTN) Cpb;

 

   Snp->Cdb.StatCode   = PXE_STATCODE_INITIALIZE;

diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
index b124b72..4923478 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
@@ -1499,7 +1499,7 @@
         CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MinValue;

         CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MaxValue;

         CurrentStatement->Step    = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.Step;

-        CurrentStatement->StorageWidth = sizeof (UINT8);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (UINT8);

         Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;

         break;

 

@@ -1507,7 +1507,7 @@
         CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MinValue, sizeof (UINT16));

         CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MaxValue, sizeof (UINT16));

         CopyMem (&CurrentStatement->Step,    &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.Step,     sizeof (UINT16));

-        CurrentStatement->StorageWidth = sizeof (UINT16);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (UINT16);

         Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;

         break;

 

@@ -1515,7 +1515,7 @@
         CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue, sizeof (UINT32));

         CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue, sizeof (UINT32));

         CopyMem (&CurrentStatement->Step,    &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step,     sizeof (UINT32));

-        CurrentStatement->StorageWidth = sizeof (UINT32);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (UINT32);

         Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;

         break;

 

@@ -1523,7 +1523,7 @@
         CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MinValue, sizeof (UINT64));

         CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MaxValue, sizeof (UINT64));

         CopyMem (&CurrentStatement->Step,    &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.Step,     sizeof (UINT64));

-        CurrentStatement->StorageWidth = sizeof (UINT64);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (UINT64);

         Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;

         break;

 

@@ -1558,7 +1558,7 @@
       ASSERT(CurrentStatement != NULL);

 

       CurrentStatement->Flags = ((EFI_IFR_CHECKBOX *) OpCodeData)->Flags;

-      CurrentStatement->StorageWidth = sizeof (BOOLEAN);

+      CurrentStatement->StorageWidth = (UINT16) sizeof (BOOLEAN);

       CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BOOLEAN;

 

       InitializeRequestElement (FormSet, CurrentStatement);

@@ -1610,7 +1610,7 @@
       CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_DATE;

 

       if ((CurrentStatement->Flags & EFI_QF_DATE_STORAGE) == QF_DATE_STORAGE_NORMAL) {

-        CurrentStatement->StorageWidth = sizeof (EFI_HII_DATE);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_HII_DATE);

 

         InitializeRequestElement (FormSet, CurrentStatement);

       } else {

@@ -1630,7 +1630,7 @@
       CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_TIME;

 

       if ((CurrentStatement->Flags & QF_TIME_STORAGE) == QF_TIME_STORAGE_NORMAL) {

-        CurrentStatement->StorageWidth = sizeof (EFI_IFR_TIME);

+        CurrentStatement->StorageWidth = (UINT16) sizeof (EFI_IFR_TIME);

 

         InitializeRequestElement (FormSet, CurrentStatement);

       } else {

diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c
index d916aeb..3310bb2 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Ui.c
@@ -1775,8 +1775,8 @@
         UpArrow         = FALSE;

         Row             = TopRow;

 

-        Temp            = SkipValue;

-        Temp2           = SkipValue;

+        Temp            = (UINTN) SkipValue;

+        Temp2           = (UINTN) SkipValue;

 

         ClearLines (

           LocalScreen.LeftColumn,

@@ -2532,6 +2532,7 @@
           }

           BufferSize = StrLen (StringPtr) / 2;

           DevicePath = AllocatePool (BufferSize);

+          ASSERT (DevicePath != NULL);

 

           //

           // Convert from Device Path String to DevicePath Buffer in the reverse order.

@@ -2940,6 +2941,7 @@
     case CfUiPageDown:

       ControlFlag     = CfCheckSelection;

 

+      ASSERT (NewPos != NULL);

       if (NewPos->ForwardLink == &gMenuOption) {

         NewLine = FALSE;

         Repaint = FALSE;

@@ -3007,7 +3009,7 @@
         //

         // An option might be multi-line, so we need to reflect that data in the overall skip value

         //

-        UpdateOptionSkipLines (Selection, NextMenuOption, &OptionString, SkipValue);

+        UpdateOptionSkipLines (Selection, NextMenuOption, &OptionString, (UINTN) SkipValue);

 

         Temp = MenuOption->Row + MenuOption->Skip + DistanceValue - 1;

         if ((MenuOption->Row + MenuOption->Skip == BottomRow + 1) &&