]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add check when use *Pointer as Sd->mRight[*Pointer] to avoid out of Array bound.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 1 Feb 2009 04:48:29 +0000 (04:48 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 1 Feb 2009 04:48:29 +0000 (04:48 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7382 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c

index 9d0fd7d131ea738d7d85922f0d40640fe83e9fa8..6dc1b84b874b9118d312371dd0e976a79ec8718b 100644 (file)
@@ -225,11 +225,13 @@ MakeTable (
           Sd->mRight[Avail] = Sd->mLeft[Avail] = 0;\r
           *Pointer = Avail++;\r
         }\r
-\r
-        if ((Index3 & Mask) != 0) {\r
-          Pointer = &Sd->mRight[*Pointer];\r
-        } else {\r
-          Pointer = &Sd->mLeft[*Pointer];\r
+        \r
+        if (*Pointer < (2 * NC - 1)) {\r
+          if ((Index3 & Mask) != 0) {\r
+            Pointer = &Sd->mRight[*Pointer];\r
+          } else {\r
+            Pointer = &Sd->mLeft[*Pointer];\r
+          }\r
         }\r
 \r
         Index3 <<= 1;\r