Re: [PATCH] scsi: core: Correct wrong kfree() usage for `kobj->name`
From: Greg KH
Date: Fri Jan 16 2026 - 04:00:15 EST
On Fri, Jan 16, 2026 at 08:13:59AM +0000, Tzung-Bi Shih wrote:
> `kobj->name` should be freed by kfree_const()[1][2]. Correct it.
>
> [1] https://elixir.bootlin.com/linux/v6.18/source/lib/kasprintf.c#L41
> [2] https://elixir.bootlin.com/linux/v6.18/source/lib/kobject.c#L695
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: b49493f99690 ("Fix a memory leak in scsi_host_dev_release()")
> Signed-off-by: Tzung-Bi Shih <tzungbi@xxxxxxxxxx>
> ---
> drivers/scsi/hosts.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
> index e047747d4ecf..50ec782cf9f4 100644
> --- a/drivers/scsi/hosts.c
> +++ b/drivers/scsi/hosts.c
> @@ -373,7 +373,7 @@ static void scsi_host_dev_release(struct device *dev)
> * name as well as the proc dir structure are leaked.
> */
> scsi_proc_hostdir_rm(shost->hostt);
> - kfree(dev_name(&shost->shost_dev));
> + kfree_const(dev_name(&shost->shost_dev));
Shouldn't the struct device name be freed by the driver core for this
device when it goes out of scope? Why is it being manually freed here
at all?
thanks,
greg k-h