From e7f8bf218f187be0ec64109d6703bfe173fd0db0 Mon Sep 17 00:00:00 2001 From: Alexey Dobriyan Date: Thu, 7 May 2026 12:01:43 +0300 Subject: [PATCH] sysfs: upgrade OOB write by buggy .show hook into WARNing Buggy .show hook will get just 1 line of dmesg: fill_read_buffer: ext4_attr_show+0x0/0x600 returned bad count It may or may not oops later in some unrelated process. But buggy .show hook most likely is corrupting random memory past sysfs buffer therefore deserving more. WARN, make it more visible and let QA machines panic earlier. Also, delete useless cast -- "count" is >=0 at this point. Signed-off-by: Alexey Dobriyan Reviewed-by: Danilo Krummrich --- fs/sysfs/file.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c index a8176c875f55e..53428aab5dd88 100644 --- a/fs/sysfs/file.c +++ b/fs/sysfs/file.c @@ -70,9 +70,8 @@ static int sysfs_kf_seq_show(struct seq_file *sf, void *v) * The code works fine with PAGE_SIZE return but it's likely to * indicate truncated result or overflow in normal use cases. */ - if (count >= (ssize_t)PAGE_SIZE) { - printk("fill_read_buffer: %pS returned bad count\n", - ops->show); + if (count >= PAGE_SIZE) { + WARN(1, "OOB write or bad count %zd at %pS\n", count, ops->show); /* Try to struggle along */ count = PAGE_SIZE - 1; }