]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add check to avoid null pointer deference.
authorRuiyu Ni <ruiyu.ni@intel.com>
Fri, 28 Mar 2014 02:50:47 +0000 (02:50 +0000)
committerniruiyu <niruiyu@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 28 Mar 2014 02:50:47 +0000 (02:50 +0000)
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

IntelFrameworkModulePkg/Library/GenericBdsLib/BdsMisc.c
IntelFrameworkModulePkg/Universal/BdsDxe/Language.c

index 4ea30bdf7defb1fa8e5356a80d24629d1da46b3d..7b3f2050ae40f183756103d580e31d1e13e63051 100644 (file)
@@ -217,6 +217,9 @@ BdsLibRegisterNewOption (
   UINT16                    BootOrderEntry;\r
   UINTN                     OrderItemNum;\r
 \r
+  if (DevicePath == NULL) {\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
 \r
   OptionPtr             = NULL;\r
   OptionSize            = 0;\r
@@ -1551,7 +1554,9 @@ SetVariableAndReportStatusCodeOnError (
       SetVariableStatus->SetStatus  = Status;\r
       SetVariableStatus->Attributes = Attributes;\r
       CopyMem (SetVariableStatus + 1,                          VariableName, NameSize);\r
-      CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data,         DataSize);\r
+      if ((Data != NULL) && (DataSize != 0)) {\r
+        CopyMem (((UINT8 *) (SetVariableStatus + 1)) + NameSize, Data,         DataSize);\r
+      }\r
 \r
       REPORT_STATUS_CODE_EX (\r
         EFI_ERROR_CODE,\r
index 4c74b018af22eca09c204da14e71ac9f0bc23935..39455e44da04da1e56376bf078b37db140dc0f65 100644 (file)
@@ -408,19 +408,18 @@ InitializeLangVariable (
   IN BOOLEAN    Iso639Language\r
   )\r
 {\r
-  EFI_STATUS  Status;\r
   CHAR8       *Lang;\r
 \r
   //\r
   // Find current Lang or PlatformLang from EFI Variable.\r
   //\r
-  Status = GetEfiGlobalVariable2 (LangName, (VOID **) &Lang, NULL);\r
+  GetEfiGlobalVariable2 (LangName, (VOID **) &Lang, NULL);\r
   //\r
   // If Lang or PlatformLang variable is not found,\r
   // or it has been set to an unsupported value(not one of the supported language codes),\r
   // set the default language code to it.\r
   //\r
-  if (EFI_ERROR (Status) || !IsLangInSupportedLangCodes (SupportedLang, Lang, Iso639Language)) {\r
+  if ((Lang == NULL) || !IsLangInSupportedLangCodes (SupportedLang, Lang, Iso639Language)) {\r
     //\r
     // The default language code should be one of the supported language codes.\r
     //\r