[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20210916130404.GA25094@kili>
Date: Thu, 16 Sep 2021 16:04:04 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: Minchan Kim <minchan@...nel.org>
Cc: Nitin Gupta <ngupta@...are.org>,
Sergey Senozhatsky <senozhatsky@...omium.org>,
Jens Axboe <axboe@...nel.dk>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, linux-block@...r.kernel.org,
kernel-janitors@...r.kernel.org
Subject: [PATCH] zram: off by one in read_block_state()
The snprintf() function returns the number of bytes it would have
printed if there were space. But it does not count the NUL terminator.
So that means that if "count == copied" then this has already
overflowed by one character.
This bug likely isn't super harmful in real life.
Fixes: c0265342bff4 ("zram: introduce zram memory tracking")
Signed-off-by: Dan Carpenter <dan.carpenter@...cle.com>
---
drivers/block/zram/zram_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index fcaf2750f68f..6383c81ac5b3 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -910,7 +910,7 @@ static ssize_t read_block_state(struct file *file, char __user *buf,
zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.',
zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.');
- if (count < copied) {
+ if (count <= copied) {
zram_slot_unlock(zram, index);
break;
}
--
2.20.1
Powered by blists - more mailing lists