
On 09.12.24 17:28, Simon Glass wrote:
Free the memory used if an error occurs.
Signed-off-by: Simon Glass sjg@chromium.org Suggested-by: Ilias Apalodimas ilias.apalodimas@linaro.org
lib/efi/efi_app_init.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/efi/efi_app_init.c b/lib/efi/efi_app_init.c index cc91e1d74b8..fec3f348cfb 100644 --- a/lib/efi/efi_app_init.c +++ b/lib/efi/efi_app_init.c @@ -60,8 +60,10 @@ int efi_bind_block(efi_handle_t handle, struct efi_block_io *blkio, plat->handle = handle; plat->blkio = blkio; plat->device_path = malloc(device_path_len);
- if (!plat->device_path)
- if (!plat->device_path) {
free(plat);
As of origin master origin/next (9dd0a9ecaa539ad) plat is a local variable and not a pointer. You cannot free it.
If there is some prerequisite patch that is making plat a pointer, you should add this correction to that patch.
Best regards
Heinrich
return log_msg_ret("path", -ENOMEM);
- } memcpy(plat->device_path, device_path, device_path_len); ret = device_bind(dm_root(), DM_DRIVER_GET(efi_media), "efi_media", plat, ofnode_null(), &dev);