From: Heinrich Schuchardt Date: Wed, 5 Nov 2025 12:24:26 +0000 (+0100) Subject: efi_driver: don't leak name in efi_bl_create_block_device() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dbed053487610781bdf48ca687fef9e39a982cb4;p=thirdparty%2Fu-boot.git efi_driver: don't leak name in efi_bl_create_block_device() blk_create_devicef() uses a copy of parameter name. We can use a local variable. Reviewed-by: Bin Meng Reviewed-by: Ilias Apalodimas Signed-off-by: Heinrich Schuchardt --- diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c index 913755336b2..9ab956c7ef7 100644 --- a/lib/efi_driver/efi_block_device.c +++ b/lib/efi_driver/efi_block_device.c @@ -124,7 +124,7 @@ efi_bl_create_block_device(efi_handle_t handle, void *interface) efi_status_t ret; int r; int devnum; - char *name; + char name[18]; /* strlen("efiblk#2147483648") + 1 */ struct efi_block_io *io = interface; struct efi_blk_plat *plat; @@ -136,9 +136,6 @@ efi_bl_create_block_device(efi_handle_t handle, void *interface) if (devnum < 0) return EFI_OUT_OF_RESOURCES; - name = calloc(1, 18); /* strlen("efiblk#2147483648") + 1 */ - if (!name) - return EFI_OUT_OF_RESOURCES; sprintf(name, "efiblk#%d", devnum); /* Create driver model udevice for the EFI block io device */ @@ -146,7 +143,6 @@ efi_bl_create_block_device(efi_handle_t handle, void *interface) devnum, io->media->block_size, (lbaint_t)io->media->last_block, &bdev)) { ret = EFI_OUT_OF_RESOURCES; - free(name); goto err; }