]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Expression.c
MdeModulePkg/SetupBrowser: Correct the incorrect variable name
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Expression.c
index 6c179c445f864d287e282050daba9a984541c04a..1938ff2f99cdd5bcc533b622b942f132fdbd187f 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Utility functions for expression evaluation.\r
 \r
-Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -1324,6 +1324,7 @@ IfrCatenate (
   UINT16         Length0;\r
   UINT16         Length1;\r
   UINT8          *TmpBuf;\r
+  UINTN          MaxLen;\r
 \r
   //\r
   // String[0] - The second string\r
@@ -1363,10 +1364,11 @@ IfrCatenate (
 \r
   if (Value[0].Type == EFI_IFR_TYPE_STRING) {\r
     Size = StrSize (String[0]);\r
-    StringPtr= AllocatePool (StrSize (String[1]) + Size);\r
+    MaxLen = (StrSize (String[1]) + Size) / sizeof (CHAR16);\r
+    StringPtr= AllocatePool (MaxLen * sizeof (CHAR16));\r
     ASSERT (StringPtr != NULL);\r
-    StrCpy (StringPtr, String[1]);\r
-    StrCat (StringPtr, String[0]);\r
+    StrCpyS (StringPtr, MaxLen, String[1]);\r
+    StrCatS (StringPtr, MaxLen, String[0]);\r
 \r
     Result->Type = EFI_IFR_TYPE_STRING;\r
     Result->Value.string = NewString (StringPtr, FormSet->HiiHandle);\r
@@ -1561,12 +1563,15 @@ IfrMatch2 (
                         &BufferSize,\r
                         HandleBuffer);\r
 \r
-  } else if (EFI_ERROR (Status)) {\r
-    Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+  }\r
+\r
+  if (EFI_ERROR (Status)) {\r
+    Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
     Status = EFI_SUCCESS;\r
     goto Done;\r
   }\r
 \r
+  ASSERT (HandleBuffer != NULL);\r
   for ( Index = 0; Index < BufferSize / sizeof(EFI_HANDLE); Index ++) {\r
     Status = gBS->HandleProtocol (\r
                   HandleBuffer[Index],\r
@@ -1628,7 +1633,7 @@ IfrMatch2 (
   // Type specified by SyntaxType is not supported \r
   // in any of the EFI_REGULAR_EXPRESSION_PROTOCOL instances.\r
   //\r
-  Value->Type = EFI_IFR_TYPE_UNDEFINED;\r
+  Result->Type = EFI_IFR_TYPE_UNDEFINED;\r
   Status = EFI_SUCCESS;\r
 \r
 Done:\r
@@ -2478,7 +2483,7 @@ GetQuestionValueFromForm (
   //\r
   // Get the question value.\r
   //\r
-  Status = GetQuestionValue(FormSet, Form, Question, GetSetValueWithHiiDriver);\r
+  Status = GetQuestionValue(FormSet, Form, Question, GetSetValueWithEditBuffer);\r
   if (EFI_ERROR (Status)) {\r
     GetTheVal = FALSE;\r
     goto Done;\r
@@ -3131,7 +3136,7 @@ EvaluateExpression (
         case EFI_HII_VARSTORE_NAME_VALUE:\r
           if (OpCode->ValueType != EFI_IFR_TYPE_STRING) {\r
             NameValue = AllocateZeroPool ((OpCode->ValueWidth * 2 + 1) * sizeof (CHAR16));\r
-            ASSERT (Value != NULL);\r
+            ASSERT (NameValue != NULL);\r
             //\r
             // Convert Buffer to Hex String\r
             //\r
@@ -3165,7 +3170,6 @@ EvaluateExpression (
           //\r
           Status = EFI_UNSUPPORTED;\r
           goto Done;\r
-          break;\r
         }\r
       } else {\r
         //\r