summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <[email protected]>2025-11-05 19:07:24 +0800
committerTom Rini <[email protected]>2025-11-11 11:54:48 -0600
commitc6e8befd4b8da4a99c779a0fddd92690e2f611fa (patch)
tree311fd7b80edcd6579e7ccc60b020241b0237fd4e
parent749ec886046d1a5dff87aa41f3d46a06ef558169 (diff)
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 <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
-rw-r--r--drivers/scsi/scsi.c7
1 files changed, 2 insertions, 5 deletions
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");