Thread (14 messages) 14 messages, 2 authors, 2021-06-24

[PATCH 4/9] loop: use sysfs_emit() in the sysfs partscan show

flat view
STALE1937d

From: Chaitanya Kulkarni <hidden>
Date: 2021-06-22 23:20:42
Subsystem: block layer, the rest · Maintainers: Jens Axboe, Linus Torvalds

Output defects can exist in sysfs content using sprintf and snprintf.

sprintf does not know the PAGE_SIZE maximum of the temporary buffer
used for outputting sysfs content and it's possible to overrun the
PAGE_SIZE buffer length.

Use a generic sysfs_emit function that knows that the size of the
temporary buffer and ensures that no overrun is done for partscan
attribute.

Signed-off-by: Chaitanya Kulkarni <redacted>
---
 drivers/block/loop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 3b11d9f21018..96bc4544328f 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -826,7 +826,7 @@ static ssize_t loop_attr_partscan_show(struct loop_device *lo, char *buf)
 {
 	int partscan = (lo->lo_flags & LO_FLAGS_PARTSCAN);
 
-	return sprintf(buf, "%s\n", partscan ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", partscan ? "1" : "0");
 }
 
 static ssize_t loop_attr_dio_show(struct loop_device *lo, char *buf)
-- 
2.22.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help