mirror of https://github.com/acidanthera/audk.git
Adjust code to fix potential array out-bound issues.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7502 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
51195fbe8c
commit
96a5ac5b0d
|
@ -888,6 +888,11 @@ DayValid (
|
||||||
DayOfMonth[10] = 30;
|
DayOfMonth[10] = 30;
|
||||||
DayOfMonth[11] = 31;
|
DayOfMonth[11] = 31;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The validity of Time->Month field should be checked before
|
||||||
|
//
|
||||||
|
ASSERT (Time->Month >=1);
|
||||||
|
ASSERT (Time->Month <=12);
|
||||||
if (Time->Day < 1 ||
|
if (Time->Day < 1 ||
|
||||||
Time->Day > DayOfMonth[Time->Month - 1] ||
|
Time->Day > DayOfMonth[Time->Month - 1] ||
|
||||||
(Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28))
|
(Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28))
|
||||||
|
@ -1048,6 +1053,12 @@ IsWithinOneDay (
|
||||||
|
|
||||||
Adjacent = FALSE;
|
Adjacent = FALSE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// The validity of Time->Month field should be checked before
|
||||||
|
//
|
||||||
|
ASSERT (From->Month >=1);
|
||||||
|
ASSERT (From->Month <=12);
|
||||||
|
|
||||||
if (From->Year == To->Year) {
|
if (From->Year == To->Year) {
|
||||||
if (From->Month == To->Month) {
|
if (From->Month == To->Month) {
|
||||||
if ((From->Day + 1) == To->Day) {
|
if ((From->Day + 1) == To->Day) {
|
||||||
|
|
|
@ -49,7 +49,9 @@ VariableIndexTableUpdate (
|
||||||
IN VARIABLE_HEADER *Variable
|
IN VARIABLE_HEADER *Variable
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {
|
||||||
IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2);
|
IndexTable->Index[IndexTable->Length++] = (UINT16) (((UINT32)(UINTN) Variable) >> 2);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,9 +443,7 @@ FindVariable (
|
||||||
//
|
//
|
||||||
// Record Variable in VariableIndex HOB
|
// Record Variable in VariableIndex HOB
|
||||||
//
|
//
|
||||||
if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {
|
|
||||||
VariableIndexTableUpdate (IndexTable, Variable);
|
VariableIndexTableUpdate (IndexTable, Variable);
|
||||||
}
|
|
||||||
|
|
||||||
if (CompareWithValidVariable (Variable, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) {
|
if (CompareWithValidVariable (Variable, VariableName, VendorGuid, PtrTrack) == EFI_SUCCESS) {
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
|
|
|
@ -48,7 +48,9 @@ VariableIndexTableUpdate (
|
||||||
IN VARIABLE_HEADER *Variable
|
IN VARIABLE_HEADER *Variable
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {
|
||||||
IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable;
|
IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue