The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] spi: Fix reference count leak in slave_show()
@ 2025-03-19  3:23 Miaoqian Lin
  2025-03-19  8:19 ` Geert Uytterhoeven
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Miaoqian Lin @ 2025-03-19  3:23 UTC (permalink / raw)
  To: Mark Brown, Geert Uytterhoeven, Greg Kroah-Hartman,
	Andy Shevchenko, Rafael J. Wysocki, linux-spi, linux-kernel
  Cc: linmq006

Fix a reference count leak in slave_show() by properly putting the device
reference obtained from device_find_any_child().

Fixes: 6c364062bfed ("spi: core: Add support for registering SPI slave controllers")
Fixes: c21b0837983d ("spi: Use device_find_any_child() instead of custom approach")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/spi/spi.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index a7a4647717d4..ff07c87dbadc 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -2954,9 +2954,13 @@ static ssize_t slave_show(struct device *dev, struct device_attribute *attr,
 	struct spi_controller *ctlr = container_of(dev, struct spi_controller,
 						   dev);
 	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;
 }
 
 static ssize_t slave_store(struct device *dev, struct device_attribute *attr,
-- 
2.39.5 (Apple Git-154)


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-03-19 17:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-19  3:23 [PATCH] spi: Fix reference count leak in slave_show() Miaoqian Lin
2025-03-19  8:19 ` Geert Uytterhoeven
2025-03-19 10:44 ` Andy Shevchenko
2025-03-19 10:45   ` Andy Shevchenko
2025-03-19 10:45     ` Andy Shevchenko
2025-03-19 11:17 ` Greg Kroah-Hartman
2025-03-19 17:23 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox