linux-kernelorg-stable/drivers/scsi
Mike Christie 258aad75c6 scsi: iscsi: Fix iscsi_task use after free
Commit d39df15851 ("scsi: iscsi: Have abort handler get ref to conn")
added iscsi_get_conn()/iscsi_put_conn() calls during abort handling but
then also changed the handling of the case where we detect an already
completed task where we now end up doing a goto to the common put/cleanup
code. This results in a iscsi_task use after free, because the common
cleanup code will do a put on the iscsi_task.

This reverts the goto and moves the iscsi_get_conn() to after we've checked
if the iscsi_task is valid.

Link: https://lore.kernel.org/r/20211004210608.9962-1-michael.christie@oracle.com
Fixes: d39df15851 ("scsi: iscsi: Have abort handler get ref to conn")
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-10-04 23:40:11 -04:00
..
aacraid scsi: aacraid: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aic7xxx
aic94xx
arcmsr
arm scsi: acornscsi: Remove scsi_cmd_to_tag() reference 2021-10-04 21:54:18 -04:00
be2iscsi
bfa
bnx2fc
bnx2i scsi: bnx2i: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
csiostor scsi: csiostor: Add module softdep on cxgb4 2021-09-28 23:26:42 -04:00
cxgbi ethernet: fix PTP_1588_CLOCK dependencies 2021-08-13 17:49:05 -07:00
cxlflash pci-v5.15-changes 2021-09-07 19:13:42 -07:00
device_handler scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach() 2021-07-29 21:58:35 -04:00
dpt
elx scsi: elx: efct: Delete stray unlock statement 2021-10-04 23:33:31 -04:00
esas2r
fcoe
fnic scsi: fnic: Stop setting scsi_cmnd.tag 2021-08-16 13:33:24 -04:00
hisi_sas scsi: hisi_sas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
ibmvscsi scsi: ibmvfc: Do not wait for initial device scan 2021-08-17 22:28:40 -04:00
ibmvscsi_tgt
isci scsi: isci: Use the proper SCSI midlayer interfaces for PI 2021-08-11 22:25:43 -04:00
libfc
libsas scsi: libsas: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
lpfc scsi: lpfc: Fix memory overwrite during FC-GS I/O abort handling 2021-10-04 23:37:08 -04:00
megaraid scsi: megaraid: Clean up some inconsistent indenting 2021-09-13 22:15:50 -04:00
mpi3mr scsi: mpi3mr: Set up IRQs in resume path 2021-08-24 22:56:33 -04:00
mpt3sas scsi: mpt3sas: Clean up some inconsistent indenting 2021-09-13 22:15:51 -04:00
mvsas
pcmcia scsi: fdomain: Fix error return code in fdomain_probe() 2021-08-09 23:30:25 -04:00
pm8001 Merge branch '5.14/scsi-fixes' into 5.15/scsi-staging 2021-08-11 22:37:22 -04:00
qedf scsi: qedf: Fix error codes in qedf_alloc_global_queues() 2021-08-16 13:27:57 -04:00
qedi scsi: qedi: Fix error codes in qedi_alloc_global_queues() 2021-08-16 13:27:57 -04:00
qla2xxx scsi: qla2xxx: Fix excessive messages during device logout 2021-09-28 22:49:25 -04:00
qla4xxx scsi: qla4xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
smartpqi scsi: smartpqi: Replace one-element array with flexible-array member 2021-08-17 22:28:39 -04:00
snic scsi: snic: Fix spelling mistake 'progres' -> 'progress' 2021-08-24 22:56:32 -04:00
sym53c8xx_2 scsi: sym53c8xx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:42 -04:00
ufs scsi: ufs: core: Fix task management completion 2021-10-04 22:03:17 -04:00
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700.c scsi: 53c700: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
53c700.h
53c700.scr
53c700_d.h_shipped
BusLogic.c scsi: BusLogic: Use %X for u32 sized integer rather than %lX 2021-08-01 13:27:46 -04:00
BusLogic.h
FlashPoint.c
Kconfig scsi: core: Rename CONFIG_BLK_SCSI_REQUEST to CONFIG_SCSI_COMMON 2021-07-28 22:24:27 -04:00
Makefile scsi: core: Fix missing FORCE for scsi_devinfo_tbl.c build rule 2021-08-23 23:07:05 -04:00
NCR5380.c scsi: NCR5380: Use sc_data_direction instead of rq_data_dir() 2021-08-11 22:25:38 -04:00
NCR5380.h
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c scsi: advansys: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aha152x.c
aha152x.h
aha1542.c scsi: aha1542: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
aha1542.h
aha1740.c
aha1740.h
am53c974.c
atari_scsi.c
atp870u.c
atp870u.h
bvme6000_scsi.c
ch.c scsi: scsi_ioctl: Call scsi_cmd_ioctl() from scsi_ioctl() 2021-07-28 22:24:25 -04:00
constants.c
dc395x.c
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: dpt_i2o: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:38 -04:00
dpti.h
esp_scsi.c
esp_scsi.h
fdomain.c
fdomain.h
fdomain_isa.c
fdomain_pci.c
g_NCR5380.c
gvp11.c
gvp11.h
hosts.c
hpsa.c scsi: hpsa: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
hpsa.h
hpsa_cmd.h
hptiop.c
hptiop.h
imm.c
imm.h
initio.c
initio.h
ipr.c
ipr.h
ips.c scsi: ips: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:39 -04:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c
iscsi_tcp.h
jazz_esp.c
lasi700.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
libiscsi.c scsi: iscsi: Fix iscsi_task use after free 2021-10-04 23:40:11 -04:00
libiscsi_tcp.c
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c
megaraid.c
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c scsi: mvumi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
mvumi.h
myrb.c scsi: myrb: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
myrb.h
myrs.c scsi: myrs: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:40 -04:00
myrs.h
ncr53c8xx.c scsi: ncr53c8xx: Remove unused retrieve_from_waiting_list() function 2021-09-13 22:15:47 -04:00
ncr53c8xx.h
nsp32.c
nsp32.h
nsp32_debug.c
nsp32_io.h
pmcraid.c
pmcraid.h
ppa.c
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Stop using scsi_cmnd.tag 2021-08-23 23:06:56 -04:00
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c scsi: qlogicpti: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi.c scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi.h
scsi_bsg.c scsi: bsg: Fix commands without data transfer in scsi_bsg_sg_io_fn() 2021-08-01 13:21:40 -04:00
scsi_common.c scsi: core: Rename CONFIG_BLK_SCSI_REQUEST to CONFIG_SCSI_COMMON 2021-07-28 22:24:27 -04:00
scsi_debug.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
scsi_debugfs.c
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_IGN_MEDIA_CHANGE for Ultra HS-SD/MMC USB card readers 2021-07-21 23:49:02 -04:00
scsi_dh.c
scsi_error.c scsi: core: Remove the request member from struct scsi_cmnd 2021-08-11 22:25:42 -04:00
scsi_ioctl.c scsi: core: scsi_ioctl: Fix error code propagation in SG_IO 2021-08-24 22:56:32 -04:00
scsi_lib.c scsi: core: Remove scsi_cmnd.tag 2021-08-17 22:28:39 -04:00
scsi_lib_dma.c
scsi_logging.c scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_logging.h
scsi_netlink.c
scsi_pm.c
scsi_priv.h scsi: bsg: Simplify device registration 2021-07-30 22:22:36 -04:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c Merge branch '5.14/scsi-fixes' into 5.15/scsi-staging 2021-08-11 22:37:22 -04:00
scsi_sysctl.c
scsi_sysfs.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c scsi: scsi_transport_fc: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_transport_iscsi.c scsi: iscsi: Adjust iface sysfs attr detection 2021-09-13 22:15:43 -04:00
scsi_transport_sas.c
scsi_transport_spi.c scsi: scsi_transport_spi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:37 -04:00
scsi_transport_srp.c
scsicam.c
sd.c scsi: sd: Make sd_spinup_disk() less noisy 2021-09-14 00:07:37 -04:00
sd.h
sd_dif.c
sd_zbc.c scsi: sd_zbc: Support disks with more than 2**32 logical blocks 2021-09-21 23:52:55 -04:00
sense_codes.h
ses.c scsi: ses: Fix unsigned comparison with less than zero 2021-09-28 22:42:06 -04:00
sg.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sgiwd93.c
sim710.c
sni_53c710.c
sr.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sr.h
sr_ioctl.c scsi: sr: Fix spelling mistake "does'nt" -> "doesn't" 2021-09-13 22:15:49 -04:00
sr_vendor.c
st.c scsi: st: Add missing break in switch statement in st_ioctl() 2021-09-13 22:15:39 -04:00
st.h st: do not allocate a gendisk 2021-08-23 12:54:30 -06:00
st_options.h
stex.c scsi: stex: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
storvsc_drv.c SCSI misc on 20210902 2021-09-02 15:09:46 -07:00
sun3_scsi.c scsi: sun3_scsi: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:41 -04:00
sun3_scsi_vme.c
sun3x_esp.c
sun_esp.c
virtio_scsi.c scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" 2021-09-28 22:47:28 -04:00
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c
wd33c93.h
wd719x.c scsi: wd719: Stop using scsi_cmnd.tag 2021-08-16 13:33:24 -04:00
wd719x.h
xen-scsifront.c scsi: xen-scsifront: Use scsi_cmd_to_rq() instead of scsi_cmnd.request 2021-08-11 22:25:42 -04:00
zalon.c parisc: Make struct parisc_driver::remove() return void 2021-08-30 10:18:25 +02:00
zorro7xx.c
zorro_esp.c