diff --git a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c index 4ea30bdf7d..7b3f2050ae 100644 --- a/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c +++ b/IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c @@ -217,6 +217,9 @@ BdsLibRegisterNewOption ( UINT16 BootOrderEntry; UINTN OrderItemNum; + if (DevicePath == NULL) { + return EFI_INVALID_PARAMETER; + } OptionPtr = NULL; OptionSize = 0; @@ -1551,7 +1554,9 @@ SetVariableAndReportStatusCodeOnError ( SetVariableStatus->SetStatus = Status; SetVariableStatus->Attributes = Attributes; CopyMem (SetVariableStatus + 1, VariableName, NameSize); - CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data, DataSize); + if ((Data != NULL) && (DataSize != 0)) { + CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data, DataSize); + } REPORT_STATUS_CODE_EX ( EFI_ERROR_CODE, diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/Language.c b/IntelFrameworkModulePkg/Universal/BdsDxe/Language.c index 4c74b018af..39455e44da 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/Language.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/Language.c @@ -408,19 +408,18 @@ InitializeLangVariable ( IN BOOLEAN Iso639Language ) { - EFI_STATUS Status; CHAR8 *Lang; // // 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, // or it has been set to an unsupported value(not one of the supported language codes), // 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. //