]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Validate the input namespace field to avoid assert.
authorEric Dong <eric.dong@intel.com>
Thu, 20 Aug 2015 00:22:16 +0000 (00:22 +0000)
committerydong10 <ydong10@Edk2>
Thu, 20 Aug 2015 00:22:16 +0000 (00:22 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18239 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/HiiDatabaseDxe/ConfigKeywordHandler.c

index 4cf803c54f6a3ffb3bfecf5cb1528b3938474bbe..eac7717053bc443bb9397b43963328843deb04b9 100644 (file)
@@ -2850,8 +2850,17 @@ EfiConfigKeywordHandlerSetData (
     Status = ExtractNameSpace (StringPtr, &NameSpace, &NextStringPtr);\r
     if (EFI_ERROR (Status)) {\r
       *ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
-      return Status;\r
+      goto Done;\r
     }\r
+    //\r
+    // 1.1 Check whether the input namespace is valid.\r
+    //\r
+    if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+      *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+      Status = EFI_INVALID_PARAMETER;\r
+      goto Done;\r
+    }\r
+\r
     StringPtr = NextStringPtr;\r
 \r
     //\r
@@ -3124,7 +3133,14 @@ EfiConfigKeywordHandlerGetData (
     *ProgressErr = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
     return Status;\r
   }\r
-\r
+  //\r
+  // 1.1 Check whether the input namespace is valid.\r
+  //\r
+  if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+    *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  \r
   if (KeywordString != NULL) {\r
     //\r
     // Use temp string to avoid changing input string buffer.\r