Re: [PATCH] spi: Fix reference count leak in slave_show()

From: Andy Shevchenko
Date: Wed Mar 19 2025 - 06:44:49 EST


On Wed, Mar 19, 2025 at 11:23:04AM +0800, Miaoqian Lin wrote:
> Fix a reference count leak in slave_show() by properly putting the device
> reference obtained from device_find_any_child().

...

> struct device *child;
> + int ret;
>
> child = device_find_any_child(&ctlr->dev);
> - return sysfs_emit(buf, "%s\n", child ? to_spi_device(child)->modalias : NULL);
> + ret = sysfs_emit(buf, "%s\n", child ? to_spi_device(child)->modalias : NULL);
> + put_device(child);
> +
> + return ret;

Can be written better in case of NULL:

child = device_find_any_child(&ctlr->dev);
if (child)
return sysfs_emit(buf, "%s\n", child ? to_spi_device(child)->modalias);

put_device(child);
return sysfs_emit(buf, "%s\n", NULL);

No variable needed.

--
With Best Regards,
Andy Shevchenko