All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Chaitanya Kulkarni <kch@nvidia.com>,
	Himanshu Madhani <himanshu.madhani@oracle.com>,
	Jens Axboe <axboe@kernel.dk>, Sasha Levin <sashal@kernel.org>,
	linux-block@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 02/12] loop: use sysfs_emit() in the sysfs xxx show()
Date: Mon, 28 Mar 2022 07:24:07 -0400	[thread overview]
Message-ID: <20220328112417.1556946-2-sashal@kernel.org> (raw)
In-Reply-To: <20220328112417.1556946-1-sashal@kernel.org>

From: Chaitanya Kulkarni <kch@nvidia.com>

[ Upstream commit b27824d31f09ea7b4a6ba2c1b18bd328df3e8bed ]

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 the size of the
temporary buffer and ensures that no overrun is done for offset
attribute in
loop_attr_[offset|sizelimit|autoclear|partscan|dio]_show() callbacks.

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Link: https://lore.kernel.org/r/20220215213310.7264-2-kch@nvidia.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/block/loop.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 19042b42a8ba..c31a76485c9c 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -795,33 +795,33 @@ static ssize_t loop_attr_backing_file_show(struct loop_device *lo, char *buf)
 
 static ssize_t loop_attr_offset_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_offset);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_offset);
 }
 
 static ssize_t loop_attr_sizelimit_show(struct loop_device *lo, char *buf)
 {
-	return sprintf(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
+	return sysfs_emit(buf, "%llu\n", (unsigned long long)lo->lo_sizelimit);
 }
 
 static ssize_t loop_attr_autoclear_show(struct loop_device *lo, char *buf)
 {
 	int autoclear = (lo->lo_flags & LO_FLAGS_AUTOCLEAR);
 
-	return sprintf(buf, "%s\n", autoclear ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", autoclear ? "1" : "0");
 }
 
 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)
 {
 	int dio = (lo->lo_flags & LO_FLAGS_DIRECT_IO);
 
-	return sprintf(buf, "%s\n", dio ? "1" : "0");
+	return sysfs_emit(buf, "%s\n", dio ? "1" : "0");
 }
 
 LOOP_ATTR_RO(backing_file);
-- 
2.34.1


  reply	other threads:[~2022-03-28 11:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-28 11:24 [PATCH AUTOSEL 4.19 01/12] selinux: use correct type for context length Sasha Levin
2022-03-28 11:24 ` Sasha Levin [this message]
2022-03-28 11:44   ` [PATCH AUTOSEL 4.19 02/12] loop: use sysfs_emit() in the sysfs xxx show() Joe Perches
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 03/12] Fix incorrect type in assignment of ipv6 port for audit Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 04/12] irqchip/qcom-pdc: Fix broken locking Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 05/12] irqchip/nvic: Release nvic_base upon failure Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 06/12] bfq: fix use-after-free in bfq_dispatch_request Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 07/12] ACPICA: Avoid walking the ACPI Namespace if it is not there Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 08/12] lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3 Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 09/12] Revert "Revert "block, bfq: honor already-setup queue merges"" Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 10/12] ACPI/APEI: Limit printable size of BERT table data Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 11/12] PM: core: keep irq flags in device_pm_check_callbacks() Sasha Levin
2022-03-28 11:24 ` [PATCH AUTOSEL 4.19 12/12] spi: tegra20: Use of_device_get_match_data() Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220328112417.1556946-2-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=himanshu.madhani@oracle.com \
    --cc=kch@nvidia.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.