Linux kernel staging patches
 help / color / mirror / Atom feed
* [PATCH] staging: greybus: Replace sprintf with sysfs_emit
@ 2026-07-15 17:28 Mohammad Davoudi
  0 siblings, 0 replies; only message in thread
From: Mohammad Davoudi @ 2026-07-15 17:28 UTC (permalink / raw)
  To: johan, elder, gregkh, rmfrfs
  Cc: greybus-dev, linux-staging, linux-kernel, Mohammad Davoudi

Replace sprintf() with sysfs_emit() in sysfs show functions.
The sprintf() function is unaware of the PAGE_SIZE limit of the sysfs
buffer, which can potentially lead to buffer overruns. sysfs_emit()
is strictly designed for sysfs attributes and inherently protects
against buffer boundaries.

Signed-off-by: Mohammad Davoudi <MDavoudi2011@gmail.com>
---
 drivers/staging/greybus/gbphy.c | 2 +-
 drivers/staging/greybus/light.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbphy.c
index bdb0f5164..bb9a5b538 100644
--- a/drivers/staging/greybus/gbphy.c
+++ b/drivers/staging/greybus/gbphy.c
@@ -31,7 +31,7 @@ static ssize_t protocol_id_show(struct device *dev,
 {
 	struct gbphy_device *gbphy_dev = to_gbphy_dev(dev);
 
-	return sprintf(buf, "0x%02x\n", gbphy_dev->cport_desc->protocol_id);
+	return sysfs_emit(buf, "0x%02x\n", gbphy_dev->cport_desc->protocol_id);
 }
 static DEVICE_ATTR_RO(protocol_id);
 
diff --git a/drivers/staging/greybus/light.c b/drivers/staging/greybus/light.c
index cab02b5da..2689f9a75 100644
--- a/drivers/staging/greybus/light.c
+++ b/drivers/staging/greybus/light.c
@@ -173,7 +173,7 @@ static ssize_t fade_##__dir##_show(struct device *dev,			\
 	struct led_classdev *cdev = dev_get_drvdata(dev);		\
 	struct gb_channel *channel = get_channel_from_cdev(cdev);	\
 									\
-	return sprintf(buf, "%u\n", channel->fade_##__dir);		\
+	return sysfs_emit(buf, "%u\n", channel->fade_##__dir);		\
 }									\
 									\
 static ssize_t fade_##__dir##_store(struct device *dev,			\
@@ -220,7 +220,7 @@ static ssize_t color_show(struct device *dev, struct device_attribute *attr,
 	struct led_classdev *cdev = dev_get_drvdata(dev);
 	struct gb_channel *channel = get_channel_from_cdev(cdev);
 
-	return sprintf(buf, "0x%08x\n", channel->color);
+	return sysfs_emit(buf, "0x%08x\n", channel->color);
 }
 
 static ssize_t color_store(struct device *dev, struct device_attribute *attr,
-- 
2.43.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-15 17:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15 17:28 [PATCH] staging: greybus: Replace sprintf with sysfs_emit Mohammad Davoudi

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