u-boot/boot
Simon Glass 741d1e9d3f 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: 6a8c2f9781 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>
2023-11-17 11:58:26 -05:00
..
Kconfig bootm: Support boot measurement 2023-10-27 13:15:57 +03:00
Makefile expo: Add basic support for textline objects 2023-10-11 15:43:55 -04:00
android_ab.c crc32: Drop duplicates crc header includes 2023-08-08 17:41:52 -04:00
boot_fit.c global: Use proper project name U-Boot 2023-06-12 13:24:31 +02:00
bootdev-uclass.c bootstd: Skip over bad device during bootflows scanning 2023-11-10 11:01:50 -05:00
bootflow.c bootstd: Avoid freeing a non-allocated buffer 2023-11-17 11:58:26 -05:00
bootflow_internal.h bootstd: Support creating a boot menu 2023-01-16 18:26:50 -05:00
bootflow_menu.c expo: Rename exp_set_text_mode() 2023-07-14 12:54:51 -04:00
bootm.c bootX measurements and measurement API moved to u-boot core 2023-10-27 19:27:29 -04:00
bootm_os.c boot: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
bootmeth-uclass.c bootstd: Add a command to read all files for a bootflow 2023-08-11 07:33:38 -06:00
bootmeth_cros.c bootstd: cros: Correct condition for read method 2023-11-01 12:26:44 -04:00
bootmeth_cros.h bootstd: cros: Bring in some ChromiumOS structures 2023-08-10 18:34:54 -06:00
bootmeth_efi.c bootstd: Avoid freeing a non-allocated buffer 2023-11-17 11:58:26 -05:00
bootmeth_efi_mgr.c bootstd: Make efi_mgr bootmeth work for non-sandbox setups 2023-11-01 12:26:44 -04:00
bootmeth_extlinux.c bootstd: Adjust the default bootmeth order 2023-08-28 15:59:22 -04:00
bootmeth_pxe.c bootstd: Init the size before reading extlinux file 2023-08-03 15:30:54 -04:00
bootmeth_qfw.c bootstd: Correct the name of the QEMU bootmeth 2023-07-16 23:13:17 +08:00
bootmeth_sandbox.c bootstd: Rename distro and syslinux to extlinux 2023-05-13 09:52:32 -04:00
bootmeth_script.c bootstd: sata: Add bootstd support for ahci sata 2023-10-23 13:07:12 -04:00
bootretry.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
bootstd-uclass.c bootstd: Remove special-case code for boot_targets 2023-01-23 18:11:39 -05:00
cedit.c expo: Plumb in textline to cedit 2023-10-11 15:43:55 -04:00
common_fit.c Create a new boot/ directory 2021-11-11 19:01:56 -05:00
expo.c expo: Correct background colour 2023-11-14 20:04:00 -07:00
expo_build.c expo: Support building an expo with a textline 2023-10-11 15:43:55 -04:00
fdt_region.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
fdt_simplefb.c Move fdt_simplefb to boot/ 2023-09-19 11:36:25 -04:00
fdt_support.c boot: Fix syntax in fdt_overlay_apply_verbose() error message 2023-11-10 11:01:50 -05:00
image-android-dt.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
image-android.c android: boot: support bootconfig 2023-04-04 14:50:47 -04:00
image-board.c boot/image-board.c: Silence warning in select_ramdisk 2023-04-25 15:31:27 -04:00
image-cipher.c Create a new boot/ directory 2021-11-11 19:01:56 -05:00
image-fdt.c android: boot: support boot image header version 3 and 4 2023-04-04 14:50:47 -04:00
image-fit-sig.c mkimage: fit: Fix signing of configs with external data 2022-10-26 11:36:06 -04:00
image-fit.c image: Allow loading a FIT image for a particular phase 2022-10-31 11:02:45 -04:00
image-host.c Create a new boot/ directory 2021-11-11 19:01:56 -05:00
image-pre-load.c boot: image-pre-load: Check environment for location of signature info 2022-10-11 15:40:48 -04:00
image-sig.c boot: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
image.c tools: mkimage: Add StarFive SPL image support 2023-09-20 21:05:14 +08:00
pxe_utils.c x86: pxeboot: bugfix: Set variable for size of initrd 2023-09-22 06:03:46 +08:00
scene.c expo: Plumb in textlines to a scene 2023-10-11 15:43:55 -04:00
scene_internal.h expo: Plumb in textlines to a scene 2023-10-11 15:43:55 -04:00
scene_menu.c expo: Allow rendering the background of any object 2023-10-11 15:43:55 -04:00
scene_textline.c expo: Support opening a textline 2023-10-11 15:43:55 -04:00
vbe.c boot: fix vbe_find_first_device() 2022-08-26 16:32:59 -06:00
vbe_request.c dm: core: Reverse the argument order in ofnode_copy_props() 2023-10-06 14:38:12 -04:00
vbe_simple.c boot: vbe_simple: Fix vbe_simple_read_bootflow() dependency 2023-04-28 11:30:17 -06:00
vbe_simple.h vbe: Move OS implementation into a separate file 2022-10-31 11:03:36 -04:00
vbe_simple_fw.c bootstd: Treat DHCP and PXE as bootdev labels 2023-01-23 18:11:41 -05:00
vbe_simple_os.c dm: core: Reverse the argument order in ofnode_copy_props() 2023-10-06 14:38:12 -04:00