]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Adjust code to fix potential array out-bound issues.
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 11 Feb 2009 07:05:43 +0000 (07:05 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 11 Feb 2009 07:05:43 +0000 (07:05 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7502 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/PcatRealTimeClockRuntimeDxe/PcRtc.c
MdeModulePkg/Universal/Variable/Pei/Ipf/VariableWorker.c
MdeModulePkg/Universal/Variable/Pei/Variable.c
MdeModulePkg/Universal/Variable/Pei/VariableWorker.c

index 5d52071a7bc0457ba8fc62ffa6feeb6715121884..4b1ced7439f798ec9127b337b9a3218a3b9b5f65 100644 (file)
@@ -888,6 +888,11 @@ DayValid (
   DayOfMonth[10] = 30;\r
   DayOfMonth[11] = 31;\r
 \r
+  //\r
+  // The validity of Time->Month field should be checked before\r
+  //\r
+  ASSERT (Time->Month >=1);\r
+  ASSERT (Time->Month <=12);\r
   if (Time->Day < 1 ||\r
       Time->Day > DayOfMonth[Time->Month - 1] ||\r
       (Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28))\r
@@ -1048,6 +1053,12 @@ IsWithinOneDay (
 \r
   Adjacent = FALSE;\r
 \r
+  //\r
+  // The validity of Time->Month field should be checked before\r
+  //\r
+  ASSERT (From->Month >=1);\r
+  ASSERT (From->Month <=12);\r
+  \r
   if (From->Year == To->Year) {\r
     if (From->Month == To->Month) {\r
       if ((From->Day + 1) == To->Day) {\r
index a5e0e550e3f4a758a2d5a687f3a577dae9c44cda..17f152a0f1317ba4a00b55fe8aca05186558f22a 100644 (file)
@@ -49,7 +49,9 @@ VariableIndexTableUpdate (
   IN      VARIABLE_HEADER        *Variable\r
   )\r
 {\r
-  IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2);\r
+  if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {\r
+    IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2);\r
+  }\r
 \r
   return;\r
 }\r
index 471b6a4749115430976c7d71f198943dc6833cc5..f98d2364435c8bb1b0041b3597a14abba45f46c2 100644 (file)
@@ -443,10 +443,8 @@ FindVariable (
       //\r
       // Record Variable in VariableIndex HOB\r
       //\r
-      if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {\r
-        VariableIndexTableUpdate (IndexTable, Variable);\r
-      }\r
-\r
+      VariableIndexTableUpdate (IndexTable, Variable);\r
+      \r
       if (CompareWithValidVariable (Variable, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) {\r
         return EFI_SUCCESS;\r
       }\r
index f9c5daa452499a90a73537fce295bae0c82dae25..a99bfa8c502c2bf329fda25375cd83034fe3b6ba 100644 (file)
@@ -48,7 +48,9 @@ VariableIndexTableUpdate (
   IN      VARIABLE_HEADER        *Variable\r
   )\r
 {\r
-  IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable;\r
+  if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {\r
+    IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable;\r
+  }\r
 \r
   return;\r
 }\r