diff mbox series

[-next] scsi: snic: fix possible memory leak while device_add() fails

Message ID 20230801111421.63651-1-wangzhu9@huawei.com (mailing list archive)
State Accepted
Headers show
Series [-next] scsi: snic: fix possible memory leak while device_add() fails | expand

Commit Message

wangzhu Aug. 1, 2023, 11:14 a.m. UTC
If device_add() returns error, the name allocated by dev_set_name() need
be freed. As comment of device_add() says, it should use put_device() to
give up the reference in the error path. So fix this by calling
put_device, then the name can be freed in kobject_cleanp().

Fixes: c8806b6c9e82 ("snic: driver for Cisco SCSI HBA")
Signed-off-by: Zhu Wang <wangzhu9@huawei.com>
---
 drivers/scsi/snic/snic_disc.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Martin K. Petersen Aug. 8, 2023, 2:43 a.m. UTC | #1
On Tue, 01 Aug 2023 19:14:21 +0800, Zhu Wang wrote:

> If device_add() returns error, the name allocated by dev_set_name() need
> be freed. As comment of device_add() says, it should use put_device() to
> give up the reference in the error path. So fix this by calling
> put_device, then the name can be freed in kobject_cleanp().
> 
> 

Applied to 6.5/scsi-fixes, thanks!

[1/1] scsi: snic: fix possible memory leak while device_add() fails
      https://git.kernel.org/mkp/scsi/c/41320b18a0e0
diff mbox series

Patch

diff --git a/drivers/scsi/snic/snic_disc.c b/drivers/scsi/snic/snic_disc.c
index 3e2e5783924d..e429ad23c396 100644
--- a/drivers/scsi/snic/snic_disc.c
+++ b/drivers/scsi/snic/snic_disc.c
@@ -303,6 +303,7 @@  snic_tgt_create(struct snic *snic, struct snic_tgt_id *tgtid)
 			      "Snic Tgt: device_add, with err = %d\n",
 			      ret);
 
+		put_device(&tgt->dev);
 		put_device(&snic->shost->shost_gendev);
 		spin_lock_irqsave(snic->shost->host_lock, flags);
 		list_del(&tgt->list);