linux/drivers/scsi/lpfc
James Smart 38503943c8 scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
The following kasan bug was called out:

 BUG: KASAN: slab-out-of-bounds in lpfc_unreg_login+0x7c/0xc0 [lpfc]
 Read of size 2 at addr ffff889fc7c50a22 by task lpfc_worker_3/6676
 ...
 Call Trace:
 dump_stack+0x96/0xe0
 ? lpfc_unreg_login+0x7c/0xc0 [lpfc]
 print_address_description.constprop.6+0x1b/0x220
 ? lpfc_unreg_login+0x7c/0xc0 [lpfc]
 ? lpfc_unreg_login+0x7c/0xc0 [lpfc]
 __kasan_report.cold.9+0x37/0x7c
 ? lpfc_unreg_login+0x7c/0xc0 [lpfc]
 kasan_report+0xe/0x20
 lpfc_unreg_login+0x7c/0xc0 [lpfc]
 lpfc_sli_def_mbox_cmpl+0x334/0x430 [lpfc]
 ...

When processing the completion of a "Reg Rpi" login mailbox command in
lpfc_sli_def_mbox_cmpl, a call may be made to lpfc_unreg_login. The vpi is
extracted from the completing mailbox context and passed as an input for
the next. However, the vpi stored in the mailbox command context is an
absolute vpi, which for SLI4 represents both base + offset.  When used with
a non-zero base component, (function id > 0) this results in an
out-of-range access beyond the allocated phba->vpi_ids array.

Fix by subtracting the function's base value to get an accurate vpi number.

Link: https://lore.kernel.org/r/20200322181304.37655-2-jsmart2021@gmail.com
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2020-03-26 23:15:05 -04:00
..
lpfc_attr.c scsi: lpfc: Copyright updates for 12.6.0.4 patches 2020-02-10 22:46:56 -05:00
lpfc_attr.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.c scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func 2019-12-09 18:07:34 -05:00
lpfc_bsg.h scsi: lpfc: Update Copyright in driver version 2019-03-19 13:15:10 -04:00
lpfc_compat.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_crtn.h scsi: lpfc: add RDF registration and Link Integrity FPIN logging 2020-02-18 00:08:38 -05:00
lpfc_ct.c scsi: lpfc: Copyright updates for 12.6.0.4 patches 2020-02-10 22:46:56 -05:00
lpfc_debugfs.c block, scsi: final compat_ioctl cleanup 2020-01-10 00:14:46 -05:00
lpfc_debugfs.h scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair 2019-08-19 22:41:12 -04:00
lpfc_disc.h scsi: lpfc: Add NVMe sequence level error recovery support 2019-08-19 22:41:12 -04:00
lpfc_els.c scsi: lpfc: fix spelling mistake "Notication" -> "Notification" 2020-02-24 15:18:14 -05:00
lpfc_hbadisc.c scsi: lpfc: add RDF registration and Link Integrity FPIN logging 2020-02-18 00:08:38 -05:00
lpfc_hw4.h scsi: lpfc: add RDF registration and Link Integrity FPIN logging 2020-02-18 00:08:38 -05:00
lpfc_hw.h scsi: lpfc: add RDF registration and Link Integrity FPIN logging 2020-02-18 00:08:38 -05:00
lpfc_ids.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_init.c scsi: lpfc: Copyright updates for 12.6.0.4 patches 2020-02-10 22:46:56 -05:00
lpfc_logmsg.h scsi: lpfc: Add log macros to allow print by serverity or verbosity setting 2019-10-24 21:02:05 -04:00
lpfc_mbox.c scsi: lpfc: Add FC-AL support to lpe32000 models 2019-10-24 21:02:06 -04:00
lpfc_mem.c scsi: lpfc: Remove lock contention target write path 2019-10-24 21:02:05 -04:00
lpfc_nl.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nportdisc.c scsi: lpfc: Make lpfc_defer_acc_rsp static 2020-01-10 01:23:47 -05:00
lpfc_nvme.c for-linus-20191212 2019-12-13 14:27:19 -08:00
lpfc_nvme.h SCSI misc on 20190306 2019-03-09 16:53:47 -08:00
lpfc_nvmet.c scsi: lpfc: lpfc_nvmet: Fix Use plain integer as NULL pointer 2019-10-24 21:12:08 -04:00
lpfc_nvmet.h scsi: lpfc: Remove lock contention target write path 2019-10-24 21:02:05 -04:00
lpfc_scsi.c scsi: lpfc: Copyright updates for 12.6.0.4 patches 2020-02-10 22:46:56 -05:00
lpfc_scsi.h scsi: lpfc: Update 12.2.0.0 file copyrights to 2019 2019-02-05 22:29:50 -05:00
lpfc_sli4.h scsi: lpfc: Change default IRQ model on AMD architectures 2019-11-06 00:04:04 -05:00
lpfc_sli.c scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login 2020-03-26 23:15:05 -04:00
lpfc_sli.h scsi: lpfc: Fix bad ndlp ptr in xri aborted handling 2019-10-24 21:02:04 -04:00
lpfc_version.h scsi: lpfc: Copyright updates for 12.6.0.4 patches 2020-02-10 22:46:56 -05:00
lpfc_vport.c scsi: lpfc: Fix issuing init_vpi mbox on SLI-3 card 2019-08-19 22:41:09 -04:00
lpfc_vport.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc.h scsi: lpfc: add RDF registration and Link Integrity FPIN logging 2020-02-18 00:08:38 -05:00
Makefile scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00