AsciiStrCat() is deprecated / disabled under the DISABLE_NEW_DEPRECATED_INTERFACES feature test macro.
Replace AsciiStrCat() with AsciiSPrint(). Spell out the (already existent) PrintLib dependency in the INF file. Add an explicit ASSERT() to document that XenStoreJoin() assumes that the pool allocation always succeeds. Cc: Anthony PERARD <[email protected]> Cc: Gary Lin <[email protected]> Cc: Jordan Justen <[email protected]> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=166 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <[email protected]> --- Notes: not used in my setup, testing would be appreciated OvmfPkg/XenBusDxe/XenBusDxe.inf | 1 + OvmfPkg/XenBusDxe/XenStore.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf index f0c5db98b1f4..5ff1cd04840c 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf @@ -56,6 +56,7 @@ [LibraryClasses] DebugLib XenHypercallLib SynchronizationLib + PrintLib [Protocols] gEfiDriverBindingProtocolGuid diff --git a/OvmfPkg/XenBusDxe/XenStore.c b/OvmfPkg/XenBusDxe/XenStore.c index aa3ff7d3017b..b7ae1d04863d 100644 --- a/OvmfPkg/XenBusDxe/XenStore.c +++ b/OvmfPkg/XenBusDxe/XenStore.c @@ -303,14 +303,17 @@ XenStoreJoin ( ) { CHAR8 *Buf; + UINTN BufSize; /* +1 for '/' and +1 for '\0' */ - Buf = AllocateZeroPool ( - AsciiStrLen (DirectoryPath) + AsciiStrLen (Node) + 2); - AsciiStrCat (Buf, DirectoryPath); - if (Node[0] != '\0') { - AsciiStrCat (Buf, "/"); - AsciiStrCat (Buf, Node); + BufSize = AsciiStrLen (DirectoryPath) + AsciiStrLen (Node) + 2; + Buf = AllocatePool (BufSize); + ASSERT (Buf != NULL); + + if (Node[0] == '\0') { + AsciiSPrint (Buf, BufSize, "%a", DirectoryPath); + } else { + AsciiSPrint (Buf, BufSize, "%a/%a", DirectoryPath, Node); } return Buf; -- 2.9.2 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

