Patch "zram: off by one in read_block_state()" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    zram: off by one in read_block_state()

to the 4.19-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     zram-off-by-one-in-read_block_state.patch
and it can be found in the queue-4.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit ea47306901ac58edecb8031ae6f2076f6986c035
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date:   Fri Nov 5 13:45:12 2021 -0700

    zram: off by one in read_block_state()
    
    [ Upstream commit a88e03cf3d190cf46bc4063a9b7efe87590de5f4 ]
    
    snprintf() 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.
    
    Link: https://lkml.kernel.org/r/20210916130404.GA25094@kili
    Fixes: c0265342bff4 ("zram: introduce zram memory tracking")
    Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
    Cc: Minchan Kim <minchan@xxxxxxxxxx>
    Cc: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
    Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 104206a795015..5e05bfcecd7b7 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -699,7 +699,7 @@ static ssize_t read_block_state(struct file *file, char __user *buf,
 			zram_test_flag(zram, index, ZRAM_WB) ? 'w' : '.',
 			zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.');
 
-		if (count < copied) {
+		if (count <= copied) {
 			zram_slot_unlock(zram, index);
 			break;
 		}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux