Patch "qlge: avoid memcpy buffer overflow" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
qlge: avoid memcpy buffer overflow
to the 4.4-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:
qlge-avoid-memcpy-buffer-overflow.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Fri Sep 15 10:03:45 PDT 2017
From: Arnd Bergmann <[email protected]>
Date: Wed, 23 Aug 2017 15:59:49 +0200
Subject: qlge: avoid memcpy buffer overflow
From: Arnd Bergmann <[email protected]>
[ Upstream commit e58f95831e7468d25eb6e41f234842ecfe6f014f ]
gcc-8.0.0 (snapshot) points out that we copy a variable-length string into a fixed length field using memcpy() with the destination length, and that ends up copying whatever follows the string:
inlined from 'ql_core_dump' at drivers/net/ethernet/qlogic/qlge/qlge_dbg.c:1106:2:drivers/net/ethernet/qlogic/qlge/qlge_dbg.c:708:2: error: 'memcpy' reading 15 bytes from a region of size 14 [-Werror=stringop-overflow=]
memcpy(seg_hdr->description, desc, (sizeof(seg_hdr->description)) - 1);
Changing it to use strncpy() will instead zero-pad the destination, which seems to be the right thing to do here.
The bug is probably harmless, but it seems like a good idea to address it in stable kernels as well, if only for the purpose of building with gcc-8 without warnings.
--- drivers/net/ethernet/qlogic/qlge/qlge_dbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/qlogic/qlge/qlge_dbg.c +1 -1
@@ -724,7 +724,7 @@ static void ql_build_coredump_seg_header seg_hdr->cookie =MPI_COREDUMP_COOKIE ; seg_hdr->segNum = seg_number; seg_hdr->segSize = seg_size; -memcpy (seg_hdr->description, desc, (sizeof (seg_hdr->description)) -1 ); +strncpy (seg_hdr->description, desc, (sizeof (seg_hdr->description)) -1 ); }/*
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/qlge-avoid-memcpy-buffer-overflow.patch