TempStr = Ip4Str;\r
\r
while ((*Ip4Str != '\0') && (*Ip4Str != '.')) {\r
+ if (!NET_IS_DIGIT (*Ip4Str)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
Ip4Str++;\r
}\r
\r
)\r
{\r
CHAR8 *Ip4Str;\r
+ UINTN StringSize;\r
EFI_STATUS Status;\r
\r
if ((String == NULL) || (Ip4Address == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Ip4Str = (CHAR8 *) AllocatePool ((StrLen (String) + 1) * sizeof (CHAR8));\r
+ StringSize = StrLen (String) + 1;\r
+ Ip4Str = (CHAR8 *) AllocatePool (StringSize * sizeof (CHAR8));\r
if (Ip4Str == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- UnicodeStrToAsciiStr (String, Ip4Str);\r
+ UnicodeStrToAsciiStrS (String, Ip4Str, StringSize);\r
\r
Status = NetLibAsciiStrToIp4 (Ip4Str, Ip4Address);\r
\r
)\r
{\r
CHAR8 *Ip6Str;\r
+ UINTN StringSize;\r
EFI_STATUS Status;\r
\r
if ((String == NULL) || (Ip6Address == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Ip6Str = (CHAR8 *) AllocatePool ((StrLen (String) + 1) * sizeof (CHAR8));\r
+ StringSize = StrLen (String) + 1;\r
+ Ip6Str = (CHAR8 *) AllocatePool (StringSize * sizeof (CHAR8));\r
if (Ip6Str == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- UnicodeStrToAsciiStr (String, Ip6Str);\r
+ UnicodeStrToAsciiStrS (String, Ip6Str, StringSize);\r
\r
Status = NetLibAsciiStrToIp6 (Ip6Str, Ip6Address);\r
\r
)\r
{\r
CHAR8 *Ip6Str;\r
+ UINTN StringSize;\r
CHAR8 *PrefixStr;\r
CHAR8 *TempStr;\r
EFI_STATUS Status;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Ip6Str = (CHAR8 *) AllocatePool ((StrLen (String) + 1) * sizeof (CHAR8));\r
+ StringSize = StrLen (String) + 1;\r
+ Ip6Str = (CHAR8 *) AllocatePool (StringSize * sizeof (CHAR8));\r
if (Ip6Str == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- UnicodeStrToAsciiStr (String, Ip6Str);\r
+ UnicodeStrToAsciiStrS (String, Ip6Str, StringSize);\r
\r
//\r
// Get the sub string describing prefix length.\r