)\r
{\r
CHAR16 *SSIdStr;\r
- CHAR8 *AsciiStr;\r
+ CHAR8 AsciiStr[33];\r
+ UINTN DataLen;\r
WIFI_DEVICE_PATH *WiFiDp;\r
\r
SSIdStr = GetNextParamStr (&TextDeviceNode);\r
(UINT16) sizeof (WIFI_DEVICE_PATH)\r
);\r
\r
- AsciiStr = (CHAR8 *) WiFiDp->SSId;\r
- StrToAscii (SSIdStr, &AsciiStr);\r
+ if (NULL != SSIdStr) {\r
+ DataLen = StrLen (SSIdStr);\r
+ if (StrLen (SSIdStr) > 32) {\r
+ SSIdStr[32] = L'\0';\r
+ DataLen = 32;\r
+ }\r
+\r
+ UnicodeStrToAsciiStr (SSIdStr, AsciiStr);\r
+ CopyMem (WiFiDp->SSId, AsciiStr, DataLen);\r
+ }\r
\r
return (EFI_DEVICE_PATH_PROTOCOL *) WiFiDp;\r
}\r
)\r
{\r
WIFI_DEVICE_PATH *WiFi;\r
+ UINT8 SSId[33];\r
\r
WiFi = DevPath;\r
- UefiDevicePathLibCatPrint (Str, L"Wi-Fi(%a)", WiFi->SSId);\r
+\r
+ SSId[32] = '\0';\r
+ CopyMem (SSId, WiFi->SSId, 32);\r
+\r
+ UefiDevicePathLibCatPrint (Str, L"Wi-Fi(%a)", SSId);\r
}\r
\r
/**\r