IntelFrameworkModulePkg BdsLib: Fix potential memory leak when calling BdsLibGetVariableAndSize

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni<ruiyu.ni@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15732 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Chen Fan 2014-08-01 02:45:45 +00:00 committed by ydong10
parent e66e86ee2d
commit 46737a64d0
2 changed files with 6 additions and 0 deletions

View File

@ -3570,6 +3570,8 @@ BdsLibBootNext (
ASSERT (BootOption != NULL);
BdsLibConnectDevicePath (BootOption->DevicePath);
BdsLibBootViaBootOption (BootOption, BootOption->DevicePath, &ExitDataSize, &ExitData);
FreePool(BootOption);
FreePool(BootNext);
}
}

View File

@ -168,6 +168,7 @@ BdsLibGetFreeOptionNumber (
if (OptionBuffer == NULL) {
break;
}
FreePool(OptionBuffer);
Index++;
} while (TRUE);
@ -265,6 +266,7 @@ BdsLibRegisterNewOption (
// Validate the variable.
//
if (!ValidateOption(OptionPtr, OptionSize)) {
FreePool(OptionPtr);
continue;
}
@ -626,6 +628,7 @@ BdsLibVariableToOption (
// Validate Boot#### variable data.
//
if (!ValidateOption(Variable, VariableSize)) {
FreePool (Variable);
return NULL;
}
@ -674,6 +677,7 @@ BdsLibVariableToOption (
//
Option = AllocateZeroPool (sizeof (BDS_COMMON_OPTION));
if (Option == NULL) {
FreePool (Variable);
return NULL;
}