From 2462bd3d85a77132e317ef90f66ef9d4ae4f54ac Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Fri, 21 Oct 2016 11:46:09 +0200 Subject: [PATCH] OvmfPkg/XenBusDxe: eliminate AsciiStrCat() calls 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 Cc: Gary Lin Cc: Jordan Justen Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=166 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Gary Lin Tested-by: Gary Lin Reviewed-by: Jordan Justen --- 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 f0c5db98b1..5ff1cd0484 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf @@ -56,6 +56,7 @@ DebugLib XenHypercallLib SynchronizationLib + PrintLib [Protocols] gEfiDriverBindingProtocolGuid diff --git a/OvmfPkg/XenBusDxe/XenStore.c b/OvmfPkg/XenBusDxe/XenStore.c index aa3ff7d301..b7ae1d0486 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;