]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add pointer check for NULL before dereference it.
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 29 Sep 2011 06:33:23 +0000 (06:33 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 29 Sep 2011 06:33:23 +0000 (06:33 +0000)
Signed-off-by: ydong10
Reviewed-by: rsun3, lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12472 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/HiiDatabaseDxe/String.c
MdeModulePkg/Universal/Network/ArpDxe/ArpImpl.c
MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Input.c
MdeModulePkg/Universal/SetupBrowserDxe/InputHandler.c
MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
MdeModulePkg/Universal/SetupBrowserDxe/ProcessOptions.c
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c

index bec8ce748c7aa265431d761477b1b960483bfe4e..f7a7d7fd55b841e3715c8bebd1c3210b9f0add7a 100644 (file)
@@ -341,6 +341,7 @@ FindStringBlock (
       for (Index = 0; Index < StringCount; Index++) {\r
         BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
         if (CurrentStringId == StringId) {\r
+          ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);\r
           *BlockType        = *BlockHdr;\r
           *StringBlockAddr  = BlockHdr;\r
           *StringTextOffset = StringTextPtr - BlockHdr;\r
@@ -363,6 +364,7 @@ FindStringBlock (
       for (Index = 0; Index < StringCount; Index++) {\r
         BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
         if (CurrentStringId == StringId) {\r
+          ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);\r
           *BlockType        = *BlockHdr;\r
           *StringBlockAddr  = BlockHdr;\r
           *StringTextOffset = StringTextPtr - BlockHdr;\r
@@ -406,6 +408,7 @@ FindStringBlock (
         GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);\r
         BlockSize += StringSize;\r
         if (CurrentStringId == StringId) {\r
+          ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);\r
           *BlockType        = *BlockHdr;\r
           *StringBlockAddr  = BlockHdr;\r
           *StringTextOffset = StringTextPtr - BlockHdr;\r
@@ -429,6 +432,7 @@ FindStringBlock (
         GetUnicodeStringTextOrSize (NULL, StringTextPtr, &StringSize);\r
         BlockSize += StringSize;\r
         if (CurrentStringId == StringId) {\r
+          ASSERT (BlockType != NULL && StringBlockAddr != NULL && StringTextOffset != NULL);\r
           *BlockType        = *BlockHdr;\r
           *StringBlockAddr  = BlockHdr;\r
           *StringTextOffset = StringTextPtr - BlockHdr;\r
@@ -572,7 +576,7 @@ FindStringBlock (
   //\r
   // Get last string ID\r
   //\r
-  if (StringId == (EFI_STRING_ID) (-1)) {\r
+  if (StringId == (EFI_STRING_ID) (-1) && LastStringId != NULL) {\r
     *LastStringId = (EFI_STRING_ID) (CurrentStringId - 1);\r
     return EFI_SUCCESS;\r
   }\r
index 8219e01e24d5f974f3a72be13dd26cb6ce063c7e..c754177a1f281b7e4cc15623f7eab01b570f3ea0 100644 (file)
@@ -533,6 +533,8 @@ ArpMatchAddress (
   IN NET_ARP_ADDRESS  *AddressTwo\r
   )\r
 {\r
+  ASSERT (AddressOne != NULL && AddressTwo != NULL);\r
+\r
   if ((AddressOne->Type != AddressTwo->Type) ||\r
     (AddressOne->Length != AddressTwo->Length)) {\r
     //\r
index 9cd1ae5cfc58758cf493dde8147a2cf3c97a6fbe..0990d1803588f98a1abb0ad9ab26c861de01154d 100644 (file)
@@ -419,7 +419,15 @@ Ip4Reassemble (
     }\r
 \r
     NewPacket->Ip.Ip4 = Assemble->Head;\r
-    CopyMem (IP4_GET_CLIP_INFO (NewPacket), Assemble->Info, sizeof (*IP4_GET_CLIP_INFO (NewPacket)));\r
+\r
+    ASSERT (Assemble->Info != NULL);\r
+\r
+    CopyMem (\r
+      IP4_GET_CLIP_INFO (NewPacket),\r
+      Assemble->Info,\r
+      sizeof (*IP4_GET_CLIP_INFO (NewPacket))\r
+      );\r
+\r
     return NewPacket;\r
   }\r
 \r
@@ -1272,7 +1280,9 @@ Ip4InstanceDeliverPacket (
       // headless. Trim the head off after copy. The IP head\r
       // may be not continuous before the data.\r
       //\r
-      Head    = NetbufAllocSpace (Dup, IP4_MAX_HEADLEN, NET_BUF_HEAD);\r
+      Head = NetbufAllocSpace (Dup, IP4_MAX_HEADLEN, NET_BUF_HEAD);\r
+      ASSERT (Head != NULL);\r
+      \r
       Dup->Ip.Ip4 = (IP4_HEAD *) Head;\r
 \r
       CopyMem (Head, Packet->Ip.Ip4, Packet->Ip.Ip4->HeadLen << 2);\r
index c42a18e3b09ef900ae441c386e0a6f283bcd237c..2522d16deb1b1c6d434d34020baeb7a833809f55 100644 (file)
@@ -1122,6 +1122,7 @@ GetSelectionInputPopUp (
       Link = GetNextNode (&Question->OptionListHead, Link);\r
 \r
       StringPtr = GetToken (OneOfOption->Text, MenuOption->Handle);\r
+      ASSERT (StringPtr != NULL);\r
       //\r
       // If the string occupies multiple lines, truncate it to fit in one line,\r
       // and append a "..." for indication.\r
index 2fab5b79c956cd18f5bef5673e5212045f0717ef..c573fdbe15878b950d632b950e54dcae2579f799 100644 (file)
@@ -533,6 +533,7 @@ DisplayForm (
 \r
     if (!Suppress) {\r
       StringPtr = GetToken (Statement->Prompt, Handle);\r
+      ASSERT (StringPtr != NULL);\r
 \r
       Width     = GetWidth (Statement, Handle);\r
 \r
index 88a0590cf239687b260439561fc1246642e6f5b0..f97d91a2d6f1b5f794a93bc075ec71e2fd12755a 100644 (file)
@@ -502,6 +502,7 @@ ProcessOptions (
           Character[0] = LEFT_ONEOF_DELIMITER;\r
           NewStrCat (OptionString[0], Character);\r
           StringPtr = GetToken (OneOfOption->Text, Selection->Handle);\r
+          ASSERT (StringPtr != NULL);\r
           NewStrCat (OptionString[0], StringPtr);\r
           Character[0] = RIGHT_ONEOF_DELIMITER;\r
           NewStrCat (OptionString[0], Character);\r
@@ -599,6 +600,7 @@ ProcessOptions (
         Character[0] = LEFT_ONEOF_DELIMITER;\r
         NewStrCat (OptionString[0], Character);\r
         StringPtr = GetToken (OneOfOption->Text, Selection->Handle);\r
+        ASSERT (StringPtr != NULL);\r
         NewStrCat (OptionString[0], StringPtr);\r
         Character[0] = RIGHT_ONEOF_DELIMITER;\r
         NewStrCat (OptionString[0], Character);\r
index d36254cc675ca5a5d1f5155d621d21c3fb0fa8e3..df42eda670a0cfe5e894f57072e347f17d7e0a63 100644 (file)
@@ -1177,6 +1177,7 @@ EmuGetVariable (
   VARIABLE_POINTER_TRACK  Variable;\r
   UINTN                   VarDataSize;\r
   EFI_STATUS              Status;\r
+  UINT8                   *VariableDataPtr;\r
 \r
   if (VariableName == NULL || VendorGuid == NULL || DataSize == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -1201,8 +1202,10 @@ EmuGetVariable (
       Status = EFI_INVALID_PARAMETER;\r
       goto Done;\r
     }\r
-\r
-    CopyMem (Data, GetVariableDataPtr (Variable.CurrPtr), VarDataSize);\r
+    VariableDataPtr = GetVariableDataPtr (Variable.CurrPtr);\r
+    ASSERT (VariableDataPtr != NULL);\r
+    \r
+    CopyMem (Data, VariableDataPtr, VarDataSize);\r
     if (Attributes != NULL) {\r
       *Attributes = Variable.CurrPtr->Attributes;\r
     }\r