1. When get value from AltCfg data, check the varstore type first.

2. Check the pointer's validation before using it.

Signed-off-by:ydong10
Reviewed-by:lgao4


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11816 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
ydong10
2011-06-13 05:20:23 +00:00
parent 9de33db48b
commit 0194d26cb8
3 changed files with 12 additions and 2 deletions

View File

@@ -2133,6 +2133,7 @@ GetDefaultValueFromAltCfg (
ConfigRequest = NULL;
Result = NULL;
ConfigResp = NULL;
Value = NULL;
Storage = Question->Storage;
if ((Storage == NULL) || (Storage->Type == EFI_HII_VARSTORE_EFI_VARIABLE)) {
@@ -2213,12 +2214,18 @@ GetDefaultValueFromAltCfg (
//
// Skip <ConfigRequest>
//
Value = StrStr (ConfigResp, L"&VALUE");
if (IsBufferStorage) {
Value = StrStr (ConfigResp, L"&VALUE");
ASSERT (Value != NULL);
//
// Skip "&VALUE"
//
Value = Value + 6;
} else {
Value = StrStr (ConfigResp, Question->VariableName);
ASSERT (Value != NULL);
Value = Value + StrLen (Question->VariableName);
}
if (*Value != '=') {
Status = EFI_NOT_FOUND;