)\r
{\r
CHAR8 *Buf;\r
+ UINTN BufSize;\r
\r
/* +1 for '/' and +1 for '\0' */\r
- Buf = AllocateZeroPool (\r
- AsciiStrLen (DirectoryPath) + AsciiStrLen (Node) + 2);\r
- AsciiStrCat (Buf, DirectoryPath);\r
- if (Node[0] != '\0') {\r
- AsciiStrCat (Buf, "/");\r
- AsciiStrCat (Buf, Node);\r
+ BufSize = AsciiStrLen (DirectoryPath) + AsciiStrLen (Node) + 2;\r
+ Buf = AllocatePool (BufSize);\r
+ ASSERT (Buf != NULL);\r
+\r
+ if (Node[0] == '\0') {\r
+ AsciiSPrint (Buf, BufSize, "%a", DirectoryPath);\r
+ } else {\r
+ AsciiSPrint (Buf, BufSize, "%a/%a", DirectoryPath, Node);\r
}\r
\r
return Buf;\r