EFI_DHCP6_PACKET_OPTION *Option;\r
EFI_IPv6_ADDRESS IpAddr;\r
CHAR8 *HostName;\r
+ UINTN HostNameSize;\r
CHAR16 *HostNameStr;\r
EFI_STATUS Status;\r
\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
- \r
- HostNameStr = AllocateZeroPool ((AsciiStrLen (HostName) + 1) * sizeof (CHAR16));\r
+\r
+ HostNameSize = AsciiStrSize (HostName);\r
+ HostNameStr = AllocateZeroPool (HostNameSize * sizeof (CHAR16));\r
if (HostNameStr == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
goto Error;\r
}\r
\r
- AsciiStrToUnicodeStr (HostName, HostNameStr);\r
+ AsciiStrToUnicodeStrS (HostName, HostNameStr, HostNameSize);\r
Status = HttpBootDns (Private, HostNameStr, &IpAddr);\r
FreePool (HostNameStr);\r
if (EFI_ERROR (Status)) {\r
UINTN ContentLength;\r
HTTP_BOOT_CACHE_CONTENT *Cache;\r
UINT8 *Block;\r
+ UINTN UrlSize;\r
CHAR16 *Url;\r
BOOLEAN IdentityMode;\r
UINTN ReceivedSize;\r
//\r
// First, check whether we already cached the requested Uri.\r
//\r
- Url = AllocatePool ((AsciiStrLen (Private->BootFileUri) + 1) * sizeof (CHAR16));\r
+ UrlSize = AsciiStrSize (Private->BootFileUri);\r
+ Url = AllocatePool (UrlSize * sizeof (CHAR16));\r
if (Url == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
- AsciiStrToUnicodeStr (Private->BootFileUri, Url);\r
+ AsciiStrToUnicodeStrS (Private->BootFileUri, Url, UrlSize);\r
if (!HeaderOnly) {\r
Status = HttpBootGetFileFromCache (Private, Url, BufferSize, Buffer, ImageType);\r
if (Status != EFI_NOT_FOUND) {\r
}\r
RequestData->Method = HeaderOnly ? HttpMethodHead : HttpMethodGet;\r
RequestData->Url = Url;\r
- if (RequestData->Url == NULL) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
- goto ERROR_4;\r
- }\r
- AsciiStrToUnicodeStr (Private->BootFileUri, RequestData->Url);\r
\r
//\r
// 2.3 Record the request info in a temp cache item.\r
/** @file\r
Helper functions for configuring or getting the parameters relating to iSCSI.\r
\r
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 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
IScsiIpToStr (&Ip, TRUE, IfrNvData->TargetIp);\r
}\r
\r
- AsciiStrToUnicodeStr (SessionConfigData->TargetName, IfrNvData->TargetName);\r
+ AsciiStrToUnicodeStrS (\r
+ SessionConfigData->TargetName,\r
+ IfrNvData->TargetName,\r
+ sizeof (IfrNvData->TargetName) / sizeof (IfrNvData->TargetName[0])\r
+ );\r
IScsiLunToUnicodeStr (SessionConfigData->BootLun, IfrNvData->BootLun);\r
IScsiConvertIsIdToString (IfrNvData->IsId, SessionConfigData->IsId);\r
\r
if (IfrNvData->AuthenticationType == ISCSI_AUTH_TYPE_CHAP) {\r
AuthConfigData = &Attempt->AuthConfigData.CHAP;\r
IfrNvData->CHAPType = AuthConfigData->CHAPType;\r
- AsciiStrToUnicodeStr (AuthConfigData->CHAPName, IfrNvData->CHAPName);\r
- AsciiStrToUnicodeStr (AuthConfigData->CHAPSecret, IfrNvData->CHAPSecret);\r
- AsciiStrToUnicodeStr (AuthConfigData->ReverseCHAPName, IfrNvData->ReverseCHAPName);\r
- AsciiStrToUnicodeStr (AuthConfigData->ReverseCHAPSecret, IfrNvData->ReverseCHAPSecret);\r
+ AsciiStrToUnicodeStrS (\r
+ AuthConfigData->CHAPName,\r
+ IfrNvData->CHAPName,\r
+ sizeof (IfrNvData->CHAPName) / sizeof (IfrNvData->CHAPName[0])\r
+ );\r
+ AsciiStrToUnicodeStrS (\r
+ AuthConfigData->CHAPSecret,\r
+ IfrNvData->CHAPSecret,\r
+ sizeof (IfrNvData->CHAPSecret) / sizeof (IfrNvData->CHAPSecret[0])\r
+ );\r
+ AsciiStrToUnicodeStrS (\r
+ AuthConfigData->ReverseCHAPName,\r
+ IfrNvData->ReverseCHAPName,\r
+ sizeof (IfrNvData->ReverseCHAPName) / sizeof (IfrNvData->ReverseCHAPName[0])\r
+ );\r
+ AsciiStrToUnicodeStrS (\r
+ AuthConfigData->ReverseCHAPSecret,\r
+ IfrNvData->ReverseCHAPSecret,\r
+ sizeof (IfrNvData->ReverseCHAPSecret) / sizeof (IfrNvData->ReverseCHAPSecret[0])\r
+ );\r
}\r
\r
//\r
// Other parameters.\r
//\r
- AsciiStrToUnicodeStr (Attempt->AttemptName, IfrNvData->AttemptName);\r
+ AsciiStrToUnicodeStrS (\r
+ Attempt->AttemptName,\r
+ IfrNvData->AttemptName,\r
+ sizeof (IfrNvData->AttemptName) / sizeof (IfrNvData->AttemptName[0])\r
+ );\r
}\r
\r
/**\r
return EFI_OUT_OF_RESOURCES;\r
} \r
\r
- AsciiStrToUnicodeStr (Attempt->AttemptName, AttemptName1);\r
+ AsciiStrToUnicodeStrS (Attempt->AttemptName, AttemptName1, ATTEMPT_NAME_MAX_SIZE);\r
if (StrLen (AttemptName1) > ATTEMPT_NAME_SIZE) {\r
CopyMem (&AttemptName1[ATTEMPT_NAME_SIZE], L"...", 4 * sizeof (CHAR16));\r
}\r
\r
- AsciiStrToUnicodeStr (SameNicAttempt->AttemptName, AttemptName2);\r
+ AsciiStrToUnicodeStrS (SameNicAttempt->AttemptName, AttemptName2, ATTEMPT_NAME_MAX_SIZE);\r
if (StrLen (AttemptName2) > ATTEMPT_NAME_SIZE) {\r
CopyMem (&AttemptName2[ATTEMPT_NAME_SIZE], L"...", 4 * sizeof (CHAR16));\r
}\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- AsciiStrToUnicodeStr (Attempt->MacString, MacString);\r
+ AsciiStrToUnicodeStrS (Attempt->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
\r
UnicodeSPrint (\r
mPrivate->PortString,\r
NET_LIST_FOR_EACH (Entry, &mPrivate->AttemptConfigs) {\r
AttemptConfigData = NET_LIST_USER_STRUCT (Entry, ISCSI_ATTEMPT_CONFIG_NVDATA, Link);\r
\r
- AsciiStrToUnicodeStr (AttemptConfigData->AttemptName, AttemptName);\r
+ AsciiStrToUnicodeStrS (AttemptConfigData->AttemptName, AttemptName, sizeof (AttemptName) / sizeof (AttemptName[0]));\r
UnicodeSPrint (mPrivate->PortString, (UINTN) 128, L"Attempt %s", AttemptName);\r
AttemptConfigData->AttemptTitleToken = HiiSetString (\r
mCallbackInfo->RegisteredHandle,\r
mPrivate->SinglePathCount--;\r
}\r
\r
- AsciiStrToUnicodeStr (AttemptConfigData->MacString, MacString);\r
+ AsciiStrToUnicodeStrS (AttemptConfigData->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
\r
UnicodeSPrint (\r
mPrivate->PortString,\r
MacString\r
);\r
\r
- UnicodeStrToAsciiStr (MacString, AttemptConfigData->MacString);\r
+ UnicodeStrToAsciiStrS (MacString, AttemptConfigData->MacString, sizeof (AttemptConfigData->MacString));\r
AttemptConfigData->NicIndex = NicIndex;\r
\r
//\r
L"%d",\r
(UINTN) AttemptConfigData->AttemptConfigIndex\r
);\r
- UnicodeStrToAsciiStr (mPrivate->PortString, AttemptConfigData->AttemptName);\r
+ UnicodeStrToAsciiStrS (mPrivate->PortString, AttemptConfigData->AttemptName, sizeof (AttemptConfigData->AttemptName));\r
\r
//\r
// Save the created Attempt temporarily. If user does not save the attempt\r
if (EFI_ERROR (Status)) {\r
IfrNvData->InitiatorName[0] = L'\0';\r
} else {\r
- AsciiStrToUnicodeStr (InitiatorName, IfrNvData->InitiatorName);\r
+ AsciiStrToUnicodeStrS (\r
+ InitiatorName,\r
+ IfrNvData->InitiatorName,\r
+ sizeof (IfrNvData->InitiatorName) / sizeof (IfrNvData->InitiatorName[0])\r
+ );\r
}\r
\r
//\r
} else if (Action == EFI_BROWSER_ACTION_CHANGED) { \r
switch (QuestionId) {\r
case KEY_INITIATOR_NAME:\r
- UnicodeStrToAsciiStr (IfrNvData->InitiatorName, IScsiName);\r
+ UnicodeStrToAsciiStrS (IfrNvData->InitiatorName, IScsiName, ISCSI_NAME_MAX_SIZE);\r
BufferSize = AsciiStrSize (IScsiName);\r
\r
Status = gIScsiInitiatorName.Set (&gIScsiInitiatorName, &BufferSize, IScsiName);\r
);\r
}\r
\r
- UnicodeStrToAsciiStr (IfrNvData->AttemptName, Private->Current->AttemptName);\r
+ UnicodeStrToAsciiStrS (IfrNvData->AttemptName, Private->Current->AttemptName, sizeof (Private->Current->AttemptName));\r
\r
IScsiConfigUpdateAttempt ();\r
\r
break;\r
\r
case KEY_TARGET_IP:\r
- UnicodeStrToAsciiStr (IfrNvData->TargetIp, IpString);\r
+ UnicodeStrToAsciiStrS (IfrNvData->TargetIp, IpString, sizeof (IpString));\r
Status = IScsiAsciiStrToIp (IpString, IfrNvData->IpMode, &HostIp);\r
if (EFI_ERROR (Status) || !IpIsUnicast (&HostIp, IfrNvData->IpMode)) {\r
CreatePopUp (\r
break;\r
\r
case KEY_TARGET_NAME:\r
- UnicodeStrToAsciiStr (IfrNvData->TargetName, IScsiName);\r
+ UnicodeStrToAsciiStrS (IfrNvData->TargetName, IScsiName, ISCSI_NAME_MAX_SIZE);\r
Status = IScsiNormalizeName (IScsiName, AsciiStrLen (IScsiName));\r
if (EFI_ERROR (Status)) {\r
CreatePopUp (\r
break;\r
\r
case KEY_BOOT_LUN:\r
- UnicodeStrToAsciiStr (IfrNvData->BootLun, LunString);\r
+ UnicodeStrToAsciiStrS (IfrNvData->BootLun, LunString, sizeof (LunString));\r
Status = IScsiAsciiStrToLun (LunString, (UINT8 *) &Lun);\r
if (EFI_ERROR (Status)) {\r
CreatePopUp (\r
break;\r
\r
case KEY_CHAP_NAME:\r
- UnicodeStrToAsciiStr (\r
+ UnicodeStrToAsciiStrS (\r
IfrNvData->CHAPName,\r
- Private->Current->AuthConfigData.CHAP.CHAPName\r
+ Private->Current->AuthConfigData.CHAP.CHAPName,\r
+ sizeof (Private->Current->AuthConfigData.CHAP.CHAPName)\r
);\r
break;\r
\r
case KEY_CHAP_SECRET:\r
- UnicodeStrToAsciiStr (\r
+ UnicodeStrToAsciiStrS (\r
IfrNvData->CHAPSecret,\r
- Private->Current->AuthConfigData.CHAP.CHAPSecret\r
+ Private->Current->AuthConfigData.CHAP.CHAPSecret,\r
+ sizeof (Private->Current->AuthConfigData.CHAP.CHAPSecret)\r
);\r
break;\r
\r
case KEY_REVERSE_CHAP_NAME:\r
- UnicodeStrToAsciiStr (\r
+ UnicodeStrToAsciiStrS (\r
IfrNvData->ReverseCHAPName,\r
- Private->Current->AuthConfigData.CHAP.ReverseCHAPName\r
+ Private->Current->AuthConfigData.CHAP.ReverseCHAPName,\r
+ sizeof (Private->Current->AuthConfigData.CHAP.ReverseCHAPName)\r
);\r
break;\r
\r
case KEY_REVERSE_CHAP_SECRET:\r
- UnicodeStrToAsciiStr (\r
+ UnicodeStrToAsciiStrS (\r
IfrNvData->ReverseCHAPSecret,\r
- Private->Current->AuthConfigData.CHAP.ReverseCHAPSecret\r
+ Private->Current->AuthConfigData.CHAP.ReverseCHAPSecret,\r
+ sizeof (Private->Current->AuthConfigData.CHAP.ReverseCHAPSecret)\r
);\r
break;\r
\r