]> git.proxmox.com Git - mirror_edk2.git/blobdiff - FmpDevicePkg/FmpDxe/VariableSupport.c
FmpDevicePkg/FmpDxe: Remove use of CatSprint()
[mirror_edk2.git] / FmpDevicePkg / FmpDxe / VariableSupport.c
index 6c1ecf7df99086b133d3d61c44dfd00abfeccdc4..86dd5b203b73159718128fbc11089fe10d4d09a1 100644 (file)
@@ -147,9 +147,15 @@ GenerateFmpVariableName (
   IN  CHAR16  *BaseVariableName\r
   )\r
 {\r
+  UINTN   Size;\r
   CHAR16  *VariableName;\r
 \r
-  VariableName = CatSPrint (NULL, BaseVariableName);\r
+  //\r
+  // Allocate Unicode string with room for BaseVariableName and a 16 digit\r
+  // hexadecimal value for the HardwareInstance value.\r
+  //\r
+  Size = StrSize (BaseVariableName) + 16 * sizeof (CHAR16);\r
+  VariableName = AllocateCopyPool (Size, BaseVariableName);\r
   if (VariableName == NULL) {\r
     DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to generate variable name %s.\n", mImageIdName, BaseVariableName));\r
     return VariableName;\r
@@ -157,10 +163,13 @@ GenerateFmpVariableName (
   if (HardwareInstance == 0) {\r
     return VariableName;\r
   }\r
-  VariableName = CatSPrint (VariableName, L"%016lx", HardwareInstance);\r
-  if (VariableName == NULL) {\r
-    DEBUG ((DEBUG_ERROR, "FmpDxe(%s): Failed to generate variable name %s.\n", mImageIdName, BaseVariableName));\r
-  }\r
+  UnicodeValueToStringS (\r
+    &VariableName[StrLen(BaseVariableName)],\r
+    Size,\r
+    PREFIX_ZERO | RADIX_HEX,\r
+    HardwareInstance,\r
+    16\r
+    );\r
   return VariableName;\r
 }\r
 \r