]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: lpfc: Add Buffer overflow check, when nvme_info larger than PAGE_SIZE
authorJames Smart <jsmart2021@gmail.com>
Tue, 26 Jun 2018 15:24:22 +0000 (08:24 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 11 Jul 2018 02:15:08 +0000 (22:15 -0400)
commit11c9b244eb3c01282c80cfdeb585f6e7197043c7
treeaaec3570d01b678ca96c65105873e7536b3bbfd2
parent05de419806477285bfb243cb0705539ba68743ef
scsi: lpfc: Add Buffer overflow check, when nvme_info larger than PAGE_SIZE

Kernel crashes during fill_read_buffer when nvme_info sysfs file read.

With multiple NVME targets, approx 40, nvme_info may grow larger than
PAGE_SIZE bytes.  snprintf(buf + len, PAGE_SIZE - len, ...) logic is flawed
as PAGE_SIZE - len can be < 0 and is accepted by snprintf.  This results in
buffer overflow, and is detected with check from dev_attr_show and
fill_read_buffer.

Change to use scnprintf to a tmp array, before calling strlcat to ensure no
buffer overflow over PAGE_SIZE bytes.

Message "6314" created as a new message indicating when there is more nvme
info, but is truncated to fit within PAGE_SIZE bytes.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_attr.c