From: Bin Meng Date: Wed, 5 Nov 2025 11:07:24 +0000 (+0800) Subject: scsi: Fix the name string memory leak during scsi scan X-Git-Tag: v2026.01-rc3~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c6e8befd4b8da4a99c779a0fddd92690e2f611fa;p=thirdparty%2Fu-boot.git scsi: Fix the name string memory leak during scsi scan There is a memory leak during the scsi scan process due to the strdup'ed name string is never freed. Actually it is unnecessary to pass a strdup'ed name string to blk_create_devicef() as we can use the name string on the stack directly. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 05608399be1..b414d022f3f 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -584,7 +584,7 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose) struct udevice *bdev; struct blk_desc bd; struct blk_desc *bdesc; - char str[10], *name; + char str[10]; /* * detect the scsi driver to get information about its geometry (block @@ -600,10 +600,7 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose) * block devices created */ snprintf(str, sizeof(str), "id%dlun%d", id, lun); - name = strdup(str); - if (!name) - return log_msg_ret("nam", -ENOMEM); - ret = blk_create_devicef(dev, "scsi_blk", name, UCLASS_SCSI, -1, + ret = blk_create_devicef(dev, "scsi_blk", str, UCLASS_SCSI, -1, bd.blksz, bd.lba, &bdev); if (ret) { debug("Can't create device\n");