]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: megaraid_sas: Check user-provided offsets
authorArnd Bergmann <arnd@arndb.de>
Fri, 30 Oct 2020 16:44:20 +0000 (17:44 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 5 Nov 2020 02:56:17 +0000 (21:56 -0500)
commit3e19d16ad1cbb29a9364604571e8242ba935435b
tree2f197acd1a8245887804665af09ec73be357d8a3
parent72c1defe0fba45f42a9ca7c49aed4ed33f0cfc6c
scsi: megaraid_sas: Check user-provided offsets

It sounds unwise to let user space pass an unchecked 32-bit offset into a
kernel structure in an ioctl. This is an unsigned variable, so checking the
upper bound for the size of the structure it points into is sufficient to
avoid data corruption, but as the pointer might also be unaligned, it has
to be written carefully as well.

While I stumbled over this problem by reading the code, I did not continue
checking the function for further problems like it.

Link: https://lore.kernel.org/r/20201030164450.1253641-2-arnd@kernel.org
Fixes: f3fbf6ee024c ("[SCSI] MegaRAID SAS RAID: new driver")
Cc: <stable@vger.kernel.org> # v2.6.15+
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_base.c