Reviewed-by: Jian J Wang <[email protected]>

> -----Original Message-----
> From: Zeng, Star
> Sent: Friday, December 29, 2017 6:19 PM
> To: [email protected]
> Cc: Zeng, Star <[email protected]>; Wang, Jian J <[email protected]>;
> Yao, Jiewen <[email protected]>
> Subject: [PATCH] MdeModulePkg VarCheckPcd: Make sure the bin at required
> alignment
> 
> According to UEFI/PI spec, the AllocateXXXPool() interfaces should
> return eight-byte aligned buffer that satisfies the required
> HEADER_ALIGNMENT which is 4.
> 
> This patch adds ASSERT to make sure the bin at required alignment,
> that can help catch the issue earlier about incorrect aligned buffer
> returned from AllocateXXXPool().
> 
> Cc: Jian J Wang <[email protected]>
> Cc: Jiewen Yao <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Star Zeng <[email protected]>
> ---
>  MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c
> b/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c
> index 72b0363b1979..d24ee966a44c 100644
> --- a/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c
> +++ b/MdeModulePkg/Library/VarCheckPcdLib/VarCheckPcdLibNullClass.c
> @@ -1,7 +1,7 @@
>  /** @file
>    Var Check PCD handler.
> 
> -Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
>  This program and the accompanying materials
>  are licensed and made available under the terms and conditions of the BSD
> License
>  which accompanies this distribution.  The full text of the license may be 
> found
> at
> @@ -435,6 +435,10 @@ LocateVarCheckPcdBin (
>      //
>      mVarCheckPcdBin = AllocateRuntimeCopyPool (VarCheckPcdBinSize,
> VarCheckPcdBin);
>      ASSERT (mVarCheckPcdBin != NULL);
> +    //
> +    // Make sure the allocated buffer for VarCheckPcdBin at required 
> alignment.
> +    //
> +    ASSERT ((((UINTN) mVarCheckPcdBin) & (HEADER_ALIGNMENT - 1)) == 0);
>      mVarCheckPcdBinSize = VarCheckPcdBinSize;
>      FreePool (VarCheckPcdBin);
> 
> --
> 2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to