NetworkPkg: Replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr
authorStar Zeng <star.zeng@intel.com>
Wed, 15 Jun 2016 05:38:03 +0000 (13:38 +0800)
committerStar Zeng <star.zeng@intel.com>
Tue, 21 Jun 2016 04:46:24 +0000 (12:46 +0800)
It is the follow up of 3ab41b7a325ca11a12b42f5ad1661c4b6791cb49
to replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr with
UnicodeStrToAsciiStrS/AsciiStrToUnicodeStrS.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c
NetworkPkg/HttpBootDxe/HttpBootClient.c
NetworkPkg/HttpBootDxe/HttpBootConfig.c
NetworkPkg/HttpDxe/HttpImpl.c
NetworkPkg/HttpDxe/HttpProto.c
NetworkPkg/IScsiDxe/IScsiConfig.c
NetworkPkg/IScsiDxe/IScsiDriver.c
NetworkPkg/IScsiDxe/IScsiMisc.c

index 9bbc114..06eb30c 100644 (file)
@@ -271,7 +271,7 @@ CreateSpdEntry (
   //\r
   ValueStr = ShellCommandLineGetValue (ParamPackage, L"--name");\r
   if (ValueStr != NULL) {\r
-    UnicodeStrToAsciiStr (ValueStr, (CHAR8 *) (*Data)->Name);\r
+    UnicodeStrToAsciiStrS (ValueStr, (CHAR8 *) (*Data)->Name, sizeof ((*Data)->Name));\r
     *Mask |= NAME;\r
   }\r
 \r
@@ -785,7 +785,7 @@ CreateSadEntry (
     (*Data)->AlgoInfo.EspAlgoInfo.EncKeyLength = EncKeyLength;\r
     AsciiStr = AllocateZeroPool (EncKeyLength + 1);\r
     ASSERT (AsciiStr != NULL);\r
-    UnicodeStrToAsciiStr (ValueStr, AsciiStr);\r
+    UnicodeStrToAsciiStrS (ValueStr, AsciiStr, EncKeyLength + 1);\r
     CopyMem ((*Data)->AlgoInfo.EspAlgoInfo.EncKey,  AsciiStr, EncKeyLength);\r
     FreePool (AsciiStr);\r
     *Mask |= ENCRYPT_KEY;\r
@@ -815,7 +815,7 @@ CreateSadEntry (
     (*Data)->AlgoInfo.EspAlgoInfo.AuthKeyLength = AuthKeyLength;\r
     AsciiStr = AllocateZeroPool (AuthKeyLength + 1);\r
     ASSERT (AsciiStr != NULL);\r
-    UnicodeStrToAsciiStr (ValueStr, AsciiStr);\r
+    UnicodeStrToAsciiStrS (ValueStr, AsciiStr, AuthKeyLength + 1);\r
     CopyMem ((*Data)->AlgoInfo.EspAlgoInfo.AuthKey, AsciiStr, AuthKeyLength);\r
     FreePool (AsciiStr);\r
     *Mask |= AUTH_KEY;\r
index e543d9f..916f237 100644 (file)
@@ -255,6 +255,7 @@ HttpBootDhcp6ExtractUriInfo (
   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
@@ -349,14 +350,15 @@ HttpBootDhcp6ExtractUriInfo (
     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
@@ -752,6 +754,7 @@ HttpBootGetBootFile (
   UINTN                      ContentLength;\r
   HTTP_BOOT_CACHE_CONTENT    *Cache;\r
   UINT8                      *Block;\r
+  UINTN                      UrlSize;\r
   CHAR16                     *Url;\r
   BOOLEAN                    IdentityMode;\r
   UINTN                      ReceivedSize;\r
@@ -770,11 +773,12 @@ HttpBootGetBootFile (
   //\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
@@ -873,11 +877,6 @@ HttpBootGetBootFile (
   }\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
index 04c2f3e..7ae2ff6 100644 (file)
@@ -104,7 +104,7 @@ HttpBootAddBootOption (
   //\r
   // Update the URI node with the input boot file URI.\r
   //\r
-  UnicodeStrToAsciiStr (Uri, AsciiUri);\r
+  UnicodeStrToAsciiStrS (Uri, AsciiUri, sizeof (AsciiUri));\r
   Length = sizeof (EFI_DEVICE_PATH_PROTOCOL) + AsciiStrSize (AsciiUri);\r
   Node = AllocatePool (Length);\r
   if (Node == NULL) {\r
index ad194db..6fcb0b7 100644 (file)
@@ -236,6 +236,7 @@ EfiHttpRequest (
   VOID                          *UrlParser;\r
   EFI_STATUS                    Status;\r
   CHAR8                         *HostName;\r
+  UINTN                         HostNameSize;\r
   UINT16                        RemotePort;\r
   HTTP_PROTOCOL                 *HttpInstance;\r
   BOOLEAN                       Configure;\r
@@ -343,7 +344,7 @@ EfiHttpRequest (
     }\r
 \r
 \r
-    UnicodeStrToAsciiStr (Request->Url, Url);\r
+    UnicodeStrToAsciiStrS (Request->Url, Url, UrlLen);\r
     UrlParser = NULL;\r
     Status = HttpParseUrl (Url, (UINT32) AsciiStrLen (Url), FALSE, &UrlParser);\r
     if (EFI_ERROR (Status)) {\r
@@ -443,13 +444,14 @@ EfiHttpRequest (
     }\r
 \r
     if (EFI_ERROR (Status)) {\r
-      HostNameStr = AllocateZeroPool ((AsciiStrLen (HostName) + 1) * sizeof (CHAR16));\r
+      HostNameSize = AsciiStrSize (HostName);\r
+      HostNameStr = AllocateZeroPool (HostNameSize * sizeof (CHAR16));\r
       if (HostNameStr == NULL) {\r
         Status = EFI_OUT_OF_RESOURCES;\r
         goto Error1;\r
       }\r
       \r
-      AsciiStrToUnicodeStr (HostName, HostNameStr);\r
+      AsciiStrToUnicodeStrS (HostName, HostNameStr, HostNameSize);\r
       if (!HttpInstance->LocalAddressIsIPv6) {\r
         Status = HttpDns4 (HttpInstance, HostNameStr, &HttpInstance->RemoteAddr);\r
       } else {\r
index 486b203..6373f07 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Miscellaneous routines for HttpDxe driver.\r
 \r
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
 (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
@@ -1489,6 +1489,7 @@ HttpTcpTransmit (
   EFI_STATUS                Status;\r
   CHAR8                     *RequestMsg;\r
   CHAR8                     *Url;\r
+  UINTN                     UrlSize;\r
   UINTN                     RequestMsgSize;\r
 \r
   ValueInItem = (HTTP_TOKEN_WRAP *) Item->Value;\r
@@ -1499,12 +1500,13 @@ HttpTcpTransmit (
   //\r
   // Parse the URI of the remote host.\r
   //\r
-  Url = AllocatePool (StrLen (ValueInItem->HttpToken->Message->Data.Request->Url) + 1);\r
+  UrlSize = StrLen (ValueInItem->HttpToken->Message->Data.Request->Url) + 1;\r
+  Url = AllocatePool (UrlSize);\r
   if (Url == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  UnicodeStrToAsciiStr (ValueInItem->HttpToken->Message->Data.Request->Url, Url);\r
+  UnicodeStrToAsciiStrS (ValueInItem->HttpToken->Message->Data.Request->Url, Url, UrlSize);\r
 \r
   //\r
   // Create request message.\r
index 69a4003..a82ce23 100644 (file)
@@ -1,7 +1,7 @@
 /** @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
@@ -390,7 +390,11 @@ IScsiConvertAttemptConfigDataToIfrNvData (
     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
@@ -405,16 +409,36 @@ IScsiConvertAttemptConfigDataToIfrNvData (
   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
@@ -603,12 +627,12 @@ IScsiConvertIfrNvDataToAttemptConfigData (
         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
@@ -663,7 +687,7 @@ IScsiConvertIfrNvDataToAttemptConfigData (
     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
@@ -1087,7 +1111,7 @@ IScsiConfigUpdateAttempt (
   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
@@ -1216,7 +1240,7 @@ IScsiConfigDeleteAttempts (
       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
@@ -1730,7 +1754,7 @@ IScsiConfigProcessDefault (
       MacString\r
       );\r
 \r
-    UnicodeStrToAsciiStr (MacString, AttemptConfigData->MacString);\r
+    UnicodeStrToAsciiStrS (MacString, AttemptConfigData->MacString, sizeof (AttemptConfigData->MacString));\r
     AttemptConfigData->NicIndex = NicIndex;\r
 \r
     //\r
@@ -1773,7 +1797,7 @@ IScsiConfigProcessDefault (
       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
@@ -1942,7 +1966,11 @@ IScsiFormExtractConfig (
   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
@@ -2210,7 +2238,7 @@ IScsiFormCallback (
   } 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
@@ -2237,7 +2265,7 @@ IScsiFormCallback (
           );\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
@@ -2366,7 +2394,7 @@ IScsiFormCallback (
       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
@@ -2383,7 +2411,7 @@ IScsiFormCallback (
       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
@@ -2406,7 +2434,7 @@ IScsiFormCallback (
       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
@@ -2433,30 +2461,34 @@ IScsiFormCallback (
       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
index 5a121ce..7e7eb39 100644 (file)
@@ -671,7 +671,7 @@ IScsiStart (
     Session->ConfigData = AttemptConfigData;\r
     Session->AuthType   = AttemptConfigData->AuthenticationType;\r
 \r
-    AsciiStrToUnicodeStr (AttemptConfigData->MacString, MacString);\r
+    AsciiStrToUnicodeStrS (AttemptConfigData->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
     UnicodeSPrint (\r
       mPrivate->PortString,\r
       (UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
index a1f2672..93c0d0c 100644 (file)
@@ -1106,7 +1106,7 @@ IScsiGetConfigData (
           //\r
           // Refresh the state of this attempt to NVR.\r
           //\r
-          AsciiStrToUnicodeStr (AttemptTmp->MacString, MacString);\r
+          AsciiStrToUnicodeStrS (AttemptTmp->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
           UnicodeSPrint (\r
             mPrivate->PortString,\r
             (UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
@@ -1145,7 +1145,7 @@ IScsiGetConfigData (
         //\r
         // Refresh the state of this attempt to NVR.\r
         //\r
-        AsciiStrToUnicodeStr (AttemptTmp->MacString, MacString);\r
+        AsciiStrToUnicodeStrS (AttemptTmp->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
         UnicodeSPrint (\r
           mPrivate->PortString,\r
           (UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
@@ -1236,7 +1236,7 @@ IScsiGetConfigData (
       //\r
       // Refresh the state of this attempt to NVR.\r
       //\r
-      AsciiStrToUnicodeStr (AttemptConfigData->MacString, MacString);\r
+      AsciiStrToUnicodeStrS (AttemptConfigData->MacString, MacString, sizeof (MacString) / sizeof (MacString[0]));\r
       UnicodeSPrint (\r
         mPrivate->PortString,\r
         (UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r