[PATCH v2 1/1] efi_driver: don't leak name in efi_bl_create_block_device()

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Wed Nov 5 13:24:26 CET 2025


blk_create_devicef() uses a copy of parameter name.
We can use a local variable.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
v2:
	use local variable
---
 lib/efi_driver/efi_block_device.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c
index c389b1920a8..42843685b71 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;
 	}
 
-- 
2.51.0



More information about the U-Boot mailing list