From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.nue.novell.com (smtp.nue.novell.com [195.135.221.5]) (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 3D68E1A1E05 for ; Sun, 23 Oct 2016 21:45:16 -0700 (PDT) Received: from nwb-ext-pat.microfocus.com ([10.120.13.103]) by smtp.nue.novell.com with ESMTP (TLS encrypted); Mon, 24 Oct 2016 06:45:14 +0200 Received: from GaryWorkstation (nwb-a10-snat.microfocus.com [10.120.13.201]) by nwb-ext-pat.microfocus.com with ESMTP (TLS encrypted); Mon, 24 Oct 2016 05:44:51 +0100 Date: Mon, 24 Oct 2016 12:44:45 +0800 From: Gary Lin To: Laszlo Ersek Cc: edk2-devel-01 , Anthony PERARD , Jordan Justen Message-ID: <20161024044445.hacvafmtcibt4ou4@GaryWorkstation> References: <20161021212737.15974-1-lersek@redhat.com> <20161021212737.15974-4-lersek@redhat.com> MIME-Version: 1.0 In-Reply-To: <20161021212737.15974-4-lersek@redhat.com> User-Agent: Mutt/1.6.2 (2016-07-01) Subject: Re: [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: Mon, 24 Oct 2016 04:45:16 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Oct 21, 2016 at 11:27:21PM +0200, Laszlo Ersek wrote: > 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. > Reviewed-by: Gary Lin and Tested-by: Gary Lin > 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 > > >