From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 12C2E1A1E8C for ; Fri, 21 Oct 2016 14:27:49 -0700 (PDT) Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6B8E16611; Fri, 21 Oct 2016 21:27:48 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-45.phx2.redhat.com [10.3.116.45]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u9LLReg1027240; Fri, 21 Oct 2016 17:27:47 -0400 From: Laszlo Ersek To: edk2-devel-01 Cc: Anthony PERARD , Gary Lin , Jordan Justen Date: Fri, 21 Oct 2016 23:27:21 +0200 Message-Id: <20161021212737.15974-4-lersek@redhat.com> In-Reply-To: <20161021212737.15974-1-lersek@redhat.com> References: <20161021212737.15974-1-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 21 Oct 2016 21:27:48 +0000 (UTC) Subject: [PATCH 03/19] OvmfPkg/XenBusDxe: eliminate AsciiStrCat() calls X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Oct 2016 21:27:49 -0000 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 --- 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