linux/drivers/scsi/lpfc
Justin Tee 311558d2f8 scsi: lpfc: Fix double free in lpfc_cmpl_els_logo_acc() caused by lpfc_nlp_not_used()
commit 97f975823f upstream.

Smatch detected a double free path because lpfc_nlp_not_used() releases an
ndlp object before reaching lpfc_nlp_put() at the end of
lpfc_cmpl_els_logo_acc().

Remove the outdated lpfc_nlp_not_used() routine.  In
lpfc_mbx_cmpl_ns_reg_login(), replace the call with lpfc_nlp_put().  In
lpfc_cmpl_els_logo_acc(), replace the call with lpfc_unreg_rpi() and keep
the lpfc_nlp_put() at the end of the routine.  If ndlp's rpi was
registered, then lpfc_unreg_rpi()'s completion routine performs the final
ndlp clean up after lpfc_nlp_put() is called from lpfc_cmpl_els_logo_acc().
Otherwise if ndlp has no rpi registered, the lpfc_nlp_put() at the end of
lpfc_cmpl_els_logo_acc() is the final ndlp clean up.

Fixes: 4430f7fd09 ("scsi: lpfc: Rework locations of ndlp reference taking")
Cc: <stable@vger.kernel.org> # v5.11+
Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/all/Y3OefhyyJNKH%2Fiaf@kili/
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20230417191558.83100-3-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-07-23 13:54:02 +02:00
..
lpfc.h scsi: lpfc: Drop redundant pci_enable_pcie_error_reporting() 2023-03-09 22:00:38 -05:00
lpfc_attr.c Merge patch series "PCI/AER: Remove redundant Device Control Error Reporting Enable" 2023-03-09 22:01:40 -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 incorrect big endian type assignment in bsg loopback path 2023-06-14 21:57:48 -04:00
lpfc_bsg.h scsi: lpfc: Copyright updates for 14.2.0.5 patches 2022-07-07 17:21:44 -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: Fix double free in lpfc_cmpl_els_logo_acc() caused by lpfc_nlp_not_used() 2023-07-23 13:54:02 +02:00
lpfc_ct.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_debugfs.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_debugfs.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
lpfc_disc.h scsi: lpfc: Fix multiple NVMe remoteport registration calls for the same NPort ID 2022-09-15 22:18:27 -04:00
lpfc_els.c scsi: lpfc: Fix double free in lpfc_cmpl_els_logo_acc() caused by lpfc_nlp_not_used() 2023-07-23 13:54:02 +02:00
lpfc_hbadisc.c scsi: lpfc: Fix double free in lpfc_cmpl_els_logo_acc() caused by lpfc_nlp_not_used() 2023-07-23 13:54:02 +02:00
lpfc_hw.h scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_hw4.h scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_ids.h scsi: lpfc: Copyright updates for 14.2.0.5 patches 2022-07-07 17:21:44 -04:00
lpfc_init.c SCSI misc on 20230426 2023-04-26 15:39:25 -07:00
lpfc_logmsg.h scsi: lpfc: Add reporting capability for Link Degrade Signaling 2022-09-15 22:18:27 -04:00
lpfc_mbox.c scsi: lpfc: Fix double word in comments 2023-02-21 22:00:51 -05:00
lpfc_mem.c scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -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: Fix port stuck in bypassed state after LIP in PT2PT topology 2022-06-07 21:38:18 -04:00
lpfc_nvme.c scsi: lpfc: Copyright updates for 14.2.0.11 patches 2023-03-09 21:21:45 -05:00
lpfc_nvme.h scsi: lpfc: Copyright updates for 14.2.0.0 patches 2022-03-15 13:51:50 -04:00
lpfc_nvmet.c scsi: lpfc: Fix double word in comments 2023-02-21 22:00:51 -05:00
lpfc_scsi.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_scsi.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
lpfc_sli.c Merge branch '6.3/scsi-fixes' into 6.4/scsi-staging 2023-03-31 21:45:14 -04:00
lpfc_sli.h scsi: lpfc: Remove Menlo/Hornet related code 2022-07-07 17:21:44 -04:00
lpfc_sli4.h scsi: lpfc: Skip waiting for register ready bits when in unrecoverable state 2023-03-09 21:21:45 -05:00
lpfc_version.h scsi: lpfc: Update lpfc version to 14.2.0.11 2023-03-09 21:21:45 -05:00
lpfc_vmid.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_vport.c scsi: lpfc: Copyright updates for 14.2.0.10 patches 2023-01-12 00:03:15 -05:00
lpfc_vport.h scsi: lpfc: Copyright updates for 14.2.0.6 patches 2022-08-31 23:39:58 -04:00
Makefile scsi: lpfc: Commonize VMID code location 2022-05-19 20:24:56 -04:00