]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Refine code to make code run more safely.
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 18 Oct 2010 11:33:26 +0000 (11:33 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 18 Oct 2010 11:33:26 +0000 (11:33 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10955 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/PiSmmCore/Pool.c
MdeModulePkg/Universal/DebugSupportDxe/X64/PlDebugSupportX64.c
MdeModulePkg/Universal/EbcDxe/EbcExecute.c
MdeModulePkg/Universal/EbcDxe/EbcInt.c
MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c
MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c
MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c

index 928b6ed2ccd4c297622f28644d21b09a8607526f..ea28484d68d9cf00fb8680a91f5dfcd1be48598c 100644 (file)
@@ -185,7 +185,7 @@ InternalFreePoolByIndex (
   ASSERT (((UINTN)FreePoolHdr & (FreePoolHdr->Header.Size - 1)) == 0);\r
   ASSERT (FreePoolHdr->Header.Size >= MIN_POOL_SIZE);\r
 \r
-  PoolIndex = HighBitSet32 ((UINT32)FreePoolHdr->Header.Size) - MIN_POOL_SHIFT;\r
+  PoolIndex = (UINTN) (HighBitSet32 ((UINT32)FreePoolHdr->Header.Size) - MIN_POOL_SHIFT);\r
   FreePoolHdr->Header.Available = TRUE;\r
   ASSERT (PoolIndex < MAX_POOL_INDEX);\r
   InsertHeadList (&mSmmPoolLists[PoolIndex], &FreePoolHdr->Link);\r
@@ -240,7 +240,7 @@ SmmAllocatePool (
   }\r
 \r
   Size = (Size + MIN_POOL_SIZE - 1) >> MIN_POOL_SHIFT;\r
-  PoolIndex = HighBitSet32 ((UINT32)Size);\r
+  PoolIndex = (UINTN) HighBitSet32 ((UINT32)Size);\r
   if ((Size & (Size - 1)) != 0) {\r
     PoolIndex++;\r
   }\r
index 8e623b9419b2d2c2f862b2ab578c832111569bd5..fa8869d287363d3d3c315c5d24e66c2c57f6c445 100644 (file)
@@ -36,9 +36,9 @@ GetInterruptHandleFromIdt (
   // InterruptHandle 16-31 : OffsetHigh\r
   // InterruptHandle 32-63 : OffsetUpper\r
   //\r
-  ((UINT16 *) &InterruptHandle)[0] = (UINT16) IdtGateDecriptor->Bits.OffsetLow;\r
-  ((UINT16 *) &InterruptHandle)[1] = (UINT16) IdtGateDecriptor->Bits.OffsetHigh;\r
-  ((UINT32 *) &InterruptHandle)[1] = (UINT32) IdtGateDecriptor->Bits.OffsetUpper;\r
+  InterruptHandle = ((UINTN) IdtGateDecriptor->Bits.OffsetLow) |\r
+                    (((UINTN) IdtGateDecriptor->Bits.OffsetHigh)  << 16) |\r
+                    (((UINTN) IdtGateDecriptor->Bits.OffsetUpper) << 32) ;\r
 \r
   return InterruptHandle;\r
 }\r
index 48f7dcebdb728923b94b7c8a69287a422bed8d67..0d987043c1cadc83a5d343507acc6dab402256ea 100644 (file)
@@ -2367,7 +2367,7 @@ ExecuteMOVIn (
     // Get the address\r
     //\r
     Op1 = (UINT64) VmPtr->Gpr[OPERAND1_REGNUM (Operands)] + Index16;\r
-    VmWriteMemN (VmPtr, (UINTN) Op1, (INTN) ImmedIndex64);\r
+    VmWriteMemN (VmPtr, (UINTN) Op1, (UINTN)(INTN) ImmedIndex64);\r
   }\r
   //\r
   // Advance the instruction pointer\r
index dddfd58566a3e8f3d6c06ce6229d3a0f4fab6f4f..e94ed8e6c366614694167fb5c0629814b9f4ba13 100644 (file)
@@ -747,7 +747,7 @@ EbcDebugSignalException (
   // Save the exception in the context passed in\r
   //\r
   VmPtr->ExceptionFlags |= ExceptionFlags;\r
-  VmPtr->LastException = ExceptionType;\r
+  VmPtr->LastException = (UINTN) ExceptionType;\r
   //\r
   // If it's a fatal exception, then flag it in the VM context in case an\r
   // attached debugger tries to return from it.\r
index be87ec5d9835496eaf3fe364d43ed43794a13cbf..2bb8cd943ef5882d965fb639339b07014df98d3f 100644 (file)
@@ -883,6 +883,8 @@ Ip4AccpetFrame (
       goto RESTART;\r
     }\r
   }\r
+  \r
+  ASSERT (Packet != NULL);\r
   Head  = Packet->Ip.Ip4;\r
   IP4_GET_CLIP_INFO (Packet)->Status = EFI_SUCCESS;\r
 \r
index 626772575152e42d60770fc7ce1033652fb96d86..4a5d65d25e21fa8aa2b7adfbb89fa9b32c3e5cbc 100644 (file)
@@ -90,6 +90,7 @@ SerialStatusCodeReportWorker (
                   Value, \r
                   Instance\r
                   );\r
+    ASSERT (CharCount > 0);\r
    \r
     if (CallerId != NULL) {\r
       CharCount += AsciiSPrint (\r
index 27a243be064a988092ef55e8fb7e29cd4d8d2c68..868ffad7a3253f3276f3e1a9c181c5ab67addcbe 100644 (file)
@@ -90,6 +90,7 @@ SerialStatusCodeReportWorker (
                   Value, \r
                   Instance\r
                   );\r
+    ASSERT (CharCount > 0);\r
    \r
     if (CallerId != NULL) {\r
       CharCount += AsciiSPrint (\r