Add check when use *Pointer as Sd->mRight[*Pointer] to avoid out of Array bound.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7382 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4
2009-02-01 04:48:29 +00:00
parent 3dc3861a4e
commit 29666911f7

View File

@@ -225,11 +225,13 @@ MakeTable (
Sd->mRight[Avail] = Sd->mLeft[Avail] = 0;
*Pointer = Avail++;
}
if ((Index3 & Mask) != 0) {
Pointer = &Sd->mRight[*Pointer];
} else {
Pointer = &Sd->mLeft[*Pointer];
if (*Pointer < (2 * NC - 1)) {
if ((Index3 & Mask) != 0) {
Pointer = &Sd->mRight[*Pointer];
} else {
Pointer = &Sd->mLeft[*Pointer];
}
}
Index3 <<= 1;