UINT16 Length0;\r
UINT16 Length1;\r
UINT8 *TmpBuf;\r
+ UINTN MaxLen;\r
\r
//\r
// String[0] - The second string\r
\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
&BufferSize,\r
HandleBuffer);\r
\r
- } else if (EFI_ERROR (Status)) {\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
//\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
//\r
Status = EFI_UNSUPPORTED;\r
goto Done;\r
- break;\r
}\r
} else {\r
//\r