Patch "wlcore: Fix buffer overrun by snprintf due to incorrect buffer size" has been added to the 5.10-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

    wlcore: Fix buffer overrun by snprintf due to incorrect buffer size

to the 5.10-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:
     wlcore-fix-buffer-overrun-by-snprintf-due-to-incorre.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 9f067d54931325ade2e0521bdcd16550706faa65
Author: Colin Ian King <colin.king@xxxxxxxxxxxxx>
Date:   Mon Apr 19 15:14:05 2021 +0100

    wlcore: Fix buffer overrun by snprintf due to incorrect buffer size
    
    [ Upstream commit a9a4c080deb33f44e08afe35f4ca4bb9ece89f4e ]
    
    The size of the buffer than can be written to is currently incorrect, it is
    always the size of the entire buffer even though the snprintf is writing
    as position pos into the buffer. Fix this by setting the buffer size to be
    the number of bytes left in the buffer, namely sizeof(buf) - pos.
    
    Addresses-Coverity: ("Out-of-bounds access")
    Fixes: 7b0e2c4f6be3 ("wlcore: fix overlapping snprintf arguments in debugfs")
    Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
    Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>
    Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210419141405.180582-1-colin.king@xxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/ti/wlcore/debugfs.h b/drivers/net/wireless/ti/wlcore/debugfs.h
index 715edfa5f89f..a9e13e6d65c5 100644
--- a/drivers/net/wireless/ti/wlcore/debugfs.h
+++ b/drivers/net/wireless/ti/wlcore/debugfs.h
@@ -84,7 +84,7 @@ static ssize_t sub## _ ##name## _read(struct file *file,		\
 	wl1271_debugfs_update_stats(wl);				\
 									\
 	for (i = 0; i < len && pos < sizeof(buf); i++)			\
-		pos += snprintf(buf + pos, sizeof(buf),			\
+		pos += snprintf(buf + pos, sizeof(buf) - pos,		\
 			 "[%d] = %d\n", i, stats->sub.name[i]);		\
 									\
 	return wl1271_format_buffer(userbuf, count, ppos, "%s", buf);	\



[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