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 <[email protected]> and Tested-by: Gary Lin <[email protected]>

> 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

Reply via email to