]> git.dujemihanovic.xyz Git - u-boot.git/commit
bootstd: Avoid freeing a non-allocated buffer
authorSimon Glass <sjg@chromium.org>
Thu, 16 Nov 2023 01:35:23 +0000 (18:35 -0700)
committerTom Rini <trini@konsulko.com>
Fri, 17 Nov 2023 16:58:26 +0000 (11:58 -0500)
commit741d1e9d3f368908e3cd1861ddd707e81e1fd576
treee47d7a2b4615b494952fc39ce8ad819faf57ebd1
parent169c3cc49e40758956ee6c310f7f59a6443826a1
bootstd: Avoid freeing a non-allocated buffer

EFI applications can be very large and thus used to cause boot failures
when malloc() space was exhausted.

A recent changed fixed this by using the kernel_addr_r environment var
as the address of the buffer. However, it still frees the buffer when
the bootflow is discarded.

Fix this by introducing a flag to indicate whether the buffer was
allocated, or not.

Note that kernel_addr_r is not the last word here. It might be better
to use lmb to place images. But there is a lot of refactoring to do
before we can remove the environment variables. The distro scripts rely
on them so it is safe for bootstd to do so too.

Fixes: 6a8c2f9781c bootstd: Avoid allocating memory for the EFI file
Signed-off-by: Simon Glass <sjg@chromium.org>
Reported by: Simon Glass <sjg@chromium.org>
Reported by: Shantur Rathore <i@shantur.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Shantur Rathore <i@shantur.com>
boot/bootflow.c
boot/bootmeth_efi.c
include/bootflow.h