mirror of https://github.com/acidanthera/audk.git
Add check to avoid null pointer deference.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15410 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
3a4b498ee1
commit
c4571f0479
|
@ -217,6 +217,9 @@ BdsLibRegisterNewOption (
|
||||||
UINT16 BootOrderEntry;
|
UINT16 BootOrderEntry;
|
||||||
UINTN OrderItemNum;
|
UINTN OrderItemNum;
|
||||||
|
|
||||||
|
if (DevicePath == NULL) {
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
OptionPtr = NULL;
|
OptionPtr = NULL;
|
||||||
OptionSize = 0;
|
OptionSize = 0;
|
||||||
|
@ -1551,7 +1554,9 @@ SetVariableAndReportStatusCodeOnError (
|
||||||
SetVariableStatus->SetStatus = Status;
|
SetVariableStatus->SetStatus = Status;
|
||||||
SetVariableStatus->Attributes = Attributes;
|
SetVariableStatus->Attributes = Attributes;
|
||||||
CopyMem (SetVariableStatus + 1, VariableName, NameSize);
|
CopyMem (SetVariableStatus + 1, VariableName, NameSize);
|
||||||
|
if ((Data != NULL) && (DataSize != 0)) {
|
||||||
CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data, DataSize);
|
CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data, DataSize);
|
||||||
|
}
|
||||||
|
|
||||||
REPORT_STATUS_CODE_EX (
|
REPORT_STATUS_CODE_EX (
|
||||||
EFI_ERROR_CODE,
|
EFI_ERROR_CODE,
|
||||||
|
|
|
@ -408,19 +408,18 @@ InitializeLangVariable (
|
||||||
IN BOOLEAN Iso639Language
|
IN BOOLEAN Iso639Language
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
|
||||||
CHAR8 *Lang;
|
CHAR8 *Lang;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Find current Lang or PlatformLang from EFI Variable.
|
// Find current Lang or PlatformLang from EFI Variable.
|
||||||
//
|
//
|
||||||
Status = GetEfiGlobalVariable2 (LangName, (VOID **) &Lang, NULL);
|
GetEfiGlobalVariable2 (LangName, (VOID **) &Lang, NULL);
|
||||||
//
|
//
|
||||||
// If Lang or PlatformLang variable is not found,
|
// If Lang or PlatformLang variable is not found,
|
||||||
// or it has been set to an unsupported value(not one of the supported language codes),
|
// or it has been set to an unsupported value(not one of the supported language codes),
|
||||||
// set the default language code to it.
|
// set the default language code to it.
|
||||||
//
|
//
|
||||||
if (EFI_ERROR (Status) || !IsLangInSupportedLangCodes (SupportedLang, Lang, Iso639Language)) {
|
if ((Lang == NULL) || !IsLangInSupportedLangCodes (SupportedLang, Lang, Iso639Language)) {
|
||||||
//
|
//
|
||||||
// The default language code should be one of the supported language codes.
|
// The default language code should be one of the supported language codes.
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue