[PATCH 2/4] efi_loader: check alignment in efi_add_memory_map()

Heinrich Schuchardt xypron.glpk at gmx.de
Thu May 14 20:35:15 CEST 2020


On 5/14/20 2:38 PM, Michael Walle wrote:
> The first argument has to be aligned with EFI_PAGE_SIZE. This alignment
> is already checked for external callers but it is not checked for
> internal callers. Unfortunately, most of the time the return value is
> not checked, so scream loud and clear.

Why do you mention the return value here?

>
> Signed-off-by: Michael Walle <michael at walle.cc>
> ---
>  lib/efi_loader/efi_memory.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
> index fd79178da9..b56e19cb30 100644
> --- a/lib/efi_loader/efi_memory.c
> +++ b/lib/efi_loader/efi_memory.c
> @@ -248,6 +248,9 @@ efi_status_t efi_add_memory_map(uint64_t start, uint64_t pages, int memory_type,
>  	EFI_PRINT("%s: 0x%llx 0x%llx %d %s\n", __func__,
>  		  start, pages, memory_type, overlap_only_ram ? "yes" : "no");
>
> +	if (start & EFI_PAGE_MASK)
> +		panic("%s: start not aligned\n", __func__);
> +

Did you find any internal caller that has a problem?
We do not want to increase code size.

Best regards

Heinrich

>  	if (memory_type >= EFI_MAX_MEMORY_TYPE)
>  		return EFI_INVALID_PARAMETER;
>
>



More information about the U-Boot mailing list