linux-stable/drivers/scsi
Damien Le Moal 3fc53e46fd scsi: core: Fix scsi_mode_select() buffer length handling
commit a7d6840bed upstream.

The MODE SELECT(6) command allows handling mode page buffers that are up to
255 bytes, including the 4 byte header needed in front of the page
buffer. For requests larger than this limit, automatically use the MODE
SELECT(10) command.

In both cases, since scsi_mode_select() adds the mode select page header,
checks on the buffer length value must include this header size to avoid
overflows of the command CDB allocation length field.

While at it, use put_unaligned_be16() for setting the header block
descriptor length and CDB allocation length when using MODE SELECT(10).

[mkp: fix MODE SENSE vs. MODE SELECT confusion]

Link: https://lore.kernel.org/r/20210820070255.682775-3-damien.lemoal@wdc.com
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-14 19:48:35 +01:00
..
aacraid scsi: aacraid: Rearrange order of struct aac_srb_unit 2024-10-17 15:08:16 +02:00
aic7xxx scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8 2021-07-25 14:36:16 +02:00
aic94xx scsi: libsas: Introduce more SAM status code aliases in enum exec_status 2023-09-19 12:20:16 +02:00
arcmsr scsi: arcmsr: Support new PCI device IDs 1883 and 1886 2024-02-23 08:42:06 +01:00
arm SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
be2iscsi scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() 2023-12-13 18:27:01 +01:00
bfa scsi: bfa: Fix use-after-free in bfad_im_module_exit() 2024-12-14 19:47:58 +01:00
bnx2fc scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload 2024-05-17 11:48:03 +02:00
bnx2i scsi: iscsi: Rel ref after iscsi_lookup_endpoint() 2022-04-20 09:23:16 +02:00
csiostor scsi: csiostor: Avoid function pointer casts 2024-03-26 18:22:01 -04:00
cxgbi scsi: iscsi: Rel ref after iscsi_lookup_endpoint() 2022-04-20 09:23:16 +02:00
cxlflash powerpc updates for 5.10 2020-10-16 12:21:15 -07:00
device_handler scsi: core: Introduce enum scsi_disposition 2024-02-23 08:42:15 +01:00
dpt scsi: docs: convert dpti.txt to ReST 2020-03-11 23:07:59 -04:00
esas2r SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
fcoe scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock" 2024-02-23 08:42:25 +01:00
fnic scsi: fnic: Return error if vmalloc() failed 2024-01-25 14:37:44 -08:00
hisi_sas scsi: hisi_sas: Add cond_resched() for no forced preemption model 2024-12-14 19:48:30 +01:00
ibmvscsi scsi: ibmvfc: Avoid path failures during live migration 2022-12-02 17:39:58 +01:00
ibmvscsi_tgt scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024 2022-04-20 09:23:21 +02:00
isci scsi: isci: Fix an error code problem in isci_io_request_build() 2024-02-23 08:42:15 +01:00
libfc scsi: libfc: Fix up timeout error in fc_fcp_rec_error() 2024-02-23 08:42:07 +01:00
libsas scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed 2024-07-27 10:40:21 +02:00
lpfc scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list() 2024-09-04 13:17:35 +02:00
megaraid scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers 2023-11-28 16:54:55 +00:00
mpt3sas scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES 2024-08-19 05:41:19 +02:00
mvsas scsi: libsas: Introduce more SAM status code aliases in enum exec_status 2023-09-19 12:20:16 +02:00
pcmcia scsi: fdomain: Fix error return code in fdomain_probe() 2021-09-18 13:40:14 +02:00
pm8001 scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command 2023-10-10 21:53:32 +02:00
qedf scsi: qedf: Fix a possible memory leak in qedf_alloc_and_init_sb() 2024-12-14 19:47:59 +01:00
qedi scsi: qedi: Fix a possible memory leak in qedi_alloc_and_init_sb() 2024-12-14 19:47:59 +01:00
qla2xxx scsi: qla2xxx: Remove check req_sg_cnt should be equal to rsp_sg_cnt 2024-12-14 19:48:24 +01:00
qla4xxx scsi: qla4xxx: Add length check when parsing nlattrs 2023-09-19 12:20:17 +02:00
smartpqi scsi: smartpqi: Fix DMA direction for RAID requests 2022-08-21 15:15:59 +02:00
snic scsi: snic: Fix double free in snic_tgt_create() 2023-08-30 16:23:18 +02:00
sym53c8xx_2 SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
ufs scsi: ufs: exynos: Fix hibern8 notify callbacks 2024-12-14 19:48:17 +01:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
3w-9xxx.c scsi: 3w-9xxx: Avoid disabling device if failing to enable it 2022-10-26 13:25:52 +02:00
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() 2023-07-27 08:43:56 +02:00
3w-xxxx.h
53c700_d.h_shipped
53c700.c scsi: 53c700: Check that command slot is not NULL 2023-08-16 18:21:03 +02:00
53c700.h 53c700: improve non-coherent DMA handling 2020-09-25 06:20:43 +02:00
53c700.scr
a100u2w.c
a100u2w.h
a2091.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
a2091.h
a3000.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
a3000.h
a4000t.c
advansys.c scsi: advansys: Fix kernel pointer leak 2021-11-26 10:39:10 +01:00
aha152x.c scsi: aha152x: Fix aha152x_setup() __setup handler return value 2022-04-13 21:00:58 +02:00
aha152x.h
aha1542.c
aha1542.h
aha1740.c scsi: aha1740: Fix an errro handling path in aha1740_probe() 2020-03-26 21:10:53 -04:00
aha1740.h
am53c974.c
atari_scsi.c scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE 2019-11-12 22:21:34 -05:00
atp870u.c scsi: core: Clean up SG_NONE 2019-11-12 22:21:35 -05:00
atp870u.h
BusLogic.c scsi: BusLogic: Fix missing pr_cont() use 2021-09-18 13:40:35 +02:00
BusLogic.h scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic 2021-06-03 09:00:43 +02:00
bvme6000_scsi.c
ch.c scsi: ch: remove ch_mutex() 2020-02-24 14:54:25 -05:00
constants.c scsi: core: Add DID_ALLOC_FAILURE and DID_MEDIUM_ERROR to hostbyte_table 2020-04-01 22:03:04 -04:00
dc395x.c scsi: dc395x: Fix a missing check on list iterator 2022-06-09 10:21:24 +02:00
dc395x.h
dmx3191d.c
dpt_i2o.c scsi: dpt_i2o: Do not process completions with invalid addresses 2023-06-09 10:30:18 +02:00
dpti.h scsi: dpt_i2o: Remove broken pass-through ioctl (I2OUSERCMD) 2023-06-09 10:30:18 +02:00
esp_scsi.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
esp_scsi.h scsi: esp_scsi: Add support for FSC chip 2019-12-19 22:08:51 -05:00
fdomain_isa.c scsi: fdomain_isa: Merge branches in fdomain_isa_match() 2020-09-02 22:49:07 -04:00
fdomain_pci.c
fdomain.c
fdomain.h scsi: fdomain: Mark 'fdomain_pm_ops' as __maybe_unused 2020-07-08 01:12:44 -04:00
FlashPoint.c scsi: FlashPoint: Rename si_flags field 2021-07-14 16:56:40 +02:00
g_NCR5380.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
gdth_ioctl.h
gdth_proc.c scsi: gdth: Use scnprintf() for avoiding potential buffer overflow 2020-03-17 13:36:10 -04:00
gdth_proc.h
gdth.c scsi: gdth: Make option_setup() static 2020-10-07 21:48:28 -04:00
gdth.h
gvp11.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
gvp11.h
hosts.c scsi: core: Fix a use-after-free 2024-07-27 10:40:22 +02:00
hpsa_cmd.h scsi: hpsa: Update copyright 2020-09-02 22:49:06 -04:00
hpsa.c scsi: hpsa: Fix allocation size for Scsi_Host private data 2024-06-16 13:32:06 +02:00
hpsa.h scsi: hpsa: Update copyright 2020-09-02 22:49:06 -04:00
hptiop.c
hptiop.h
imm.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
imm.h
initio.c scsi: initio: Use module_pci_driver() to simplify the code 2020-10-07 21:48:28 -04:00
initio.h
ipr.c scsi: ipr: Work around fortify-string warning 2023-03-11 16:40:14 +01:00
ipr.h scsi: ipr: Fix struct packed-not-aligned issues 2020-07-15 17:26:58 -04:00
ips.c scsi: ips: Convert strnlen() to memcpy() since result should not be NUL terminated 2020-07-24 22:32:00 -04:00
ips.h
iscsi_boot_sysfs.c scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj 2020-06-02 21:23:47 -04:00
iscsi_tcp.c scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() 2023-04-20 12:10:23 +02:00
iscsi_tcp.h scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername() 2022-10-26 13:25:37 +02:00
jazz_esp.c scsi: jazz_esp: Add IRQ check 2021-05-14 09:50:27 +02:00
Kconfig scsi: jazz_esp: Only build if SCSI core is builtin 2024-03-01 13:16:50 +01:00
lasi700.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
libiscsi_tcp.c scsi: libiscsi: use sendpage_ok() in iscsi_tcp_segment_map() 2020-10-02 15:27:08 -07:00
libiscsi.c scsi: iscsi: Stop queueing during ep_disconnect 2022-04-20 09:23:15 +02:00
mac53c94.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
mac53c94.h
mac_esp.c scsi: mac_esp: Use module_platform_driver to simplify the code 2020-10-02 21:52:53 -04:00
mac_scsi.c scsi: atari_scsi: sun3_scsi: Set sg_tablesize to 1 instead of SG_NONE 2019-11-12 22:21:34 -05:00
Makefile
megaraid.c scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS 2023-05-17 11:47:49 +02:00
megaraid.h
mesh.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mesh.h
mvme16x_scsi.c
mvme147.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
mvme147.h
mvumi.c scsi: mvumi: Fix error return in mvumi_io_attach() 2020-10-02 21:42:22 -04:00
mvumi.h scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
myrb.c scsi: mylex: Fix sysfs buffer lengths 2024-04-13 12:59:33 +02:00
myrb.h scsi: mylex: Use the correct style for SPDX License Identifier 2020-01-02 21:57:44 -05:00
myrs.c scsi: mylex: Fix sysfs buffer lengths 2024-04-13 12:59:33 +02:00
myrs.h scsi: mylex: Use the correct style for SPDX License Identifier 2020-01-02 21:57:44 -05:00
ncr53c8xx.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ncr53c8xx.h
NCR5380.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c scsi: nsp32: Remove unneeded semicolon 2020-09-15 17:34:18 -04:00
nsp32.h
pmcraid.c scsi: pmcraid: Fix missing resource cleanup in error case 2022-06-22 14:13:15 +02:00
pmcraid.h scsi: Replace zero-length array with flexible-array member 2020-03-11 23:07:56 -04:00
ppa.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ppa.h
ps3rom.c
qla1280.c scsi: qla1280: Remove set but not used variable in qla1280_status_entry() 2020-09-09 22:37:48 -04:00
qla1280.h scsi: qla1280: Fix dma firmware download, if dma address is 64bit 2020-01-15 23:09:11 -05:00
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti.c SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
qlogicpti.h
raid_class.c scsi: core: raid_class: Remove raid_component_add() 2023-08-30 16:23:18 +02:00
script_asm.pl
scsi_common.c
scsi_debug.c scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() 2023-01-14 10:15:52 +01:00
scsi_debugfs.c scsi: core: Show SCMD_LAST in text form 2022-01-27 10:54:29 +01:00
scsi_debugfs.h
scsi_devinfo.c scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR 2023-04-05 11:23:39 +02:00
scsi_dh.c scsi: dh: Add Fujitsu device to devinfo and dh lists 2020-07-08 01:16:23 -04:00
scsi_error.c scsi: core: Move scsi_host_busy() out of host lock if it is for per-command 2024-02-23 08:42:21 +01:00
scsi_ioctl.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
scsi_lib_dma.c
scsi_lib.c scsi: core: Fix scsi_mode_select() buffer length handling 2024-12-14 19:48:35 +01:00
scsi_logging.c Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request" 2024-01-12 20:56:38 +01:00
scsi_logging.h scsi: core: Fix a compiler warning triggered by the SCSI logging code 2019-12-19 22:08:54 -05:00
scsi_netlink.c
scsi_pm.c scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume() 2022-01-27 10:54:08 +01:00
scsi_priv.h scsi: core: Fix a use-after-free 2024-07-27 10:40:22 +02:00
scsi_proc.c scsi: core: Fix legacy /proc parsing buffer overflow 2023-08-16 18:21:03 +02:00
scsi_sas_internal.h
scsi_scan.c scsi: core: Fix a use-after-free 2024-07-27 10:40:22 +02:00
scsi_sysctl.c
scsi_sysfs.c scsi: core: Fix a use-after-free 2024-07-27 10:40:22 +02:00
scsi_trace.c scsi: scsi_trace: Use get_unaligned_be24() 2020-03-16 22:08:36 -04:00
scsi_transport_api.h
scsi_transport_fc.c scsi: fc: Add 256GBit speed setting to SCSI FC transport 2020-09-02 22:49:07 -04:00
scsi_transport_iscsi.c scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param() 2023-09-19 12:20:17 +02:00
scsi_transport_sas.c scsi: scsi_transport_sas: Fix error handling in sas_phy_add() 2022-12-02 17:39:56 +01:00
scsi_transport_spi.c scsi: spi: Fix sshdr use 2024-09-04 13:17:34 +02:00
scsi_transport_srp.c scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state 2021-04-21 13:00:52 +02:00
scsi.c Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request" 2024-01-12 20:56:38 +01:00
scsi.h
scsicam.c block: move struct partition out of genhd.h 2020-03-24 07:57:08 -06:00
sd_dif.c
sd_zbc.c scsi: sd_zbc: Use kvzalloc() to allocate REPORT ZONES buffer 2024-11-17 14:59:36 +01:00
sd.c scsi: sd: Fix sd_do_mode_sense() buffer length handling 2024-12-14 19:48:35 +01:00
sd.h SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
sense_codes.h scsi: core: Update additional sense codes list 2020-09-15 20:28:06 -04:00
ses.c scsi: ses: Handle enclosure with just a primary component gracefully 2023-04-20 12:10:27 +02:00
sg.c scsi: sg: Allow waiting for commands to complete on removed device 2022-08-21 15:15:24 +02:00
sgiwd93.c sgiwd93: convert to dma_alloc_noncoherent 2020-09-25 06:20:44 +02:00
sim710.c
sni_53c710.c scsi: sni_53c710: Add IRQ check 2021-05-14 09:50:27 +02:00
sr_ioctl.c
sr_vendor.c scsi: sr: Don't use GFP_DMA 2022-01-27 10:54:23 +01:00
sr.c scsi: sr: Don't use GFP_DMA 2022-01-27 10:54:23 +01:00
sr.h scsi: sr: get rid of sr global mutex 2020-02-24 15:01:57 -05:00
st_options.h
st.c scsi: st: Add MTIOCGET and MTLOAD to ioctls allowed after device reset 2024-12-14 19:48:30 +01:00
st.h
stex.c scsi: stex: Fix gcc 13 warnings 2023-06-09 10:30:14 +02:00
storvsc_drv.c scsi: storvsc: Always set no_report_opcodes 2023-09-19 12:20:06 +02:00
sun3_scsi_vme.c
sun3_scsi.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sun3x_esp.c scsi: sun3x_esp: Add IRQ check 2021-05-14 09:50:27 +02:00
sun_esp.c scsi: sun_esp: Use module_platform_driver to simplify the code 2020-10-02 21:52:55 -04:00
virtio_scsi.c scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" 2021-10-17 10:43:33 +02:00
vmw_pvscsi.c scsi: vmw_pvscsi: Set residual data length conditionally 2022-01-05 12:40:33 +01:00
vmw_pvscsi.h scsi: vmw_pvscsi: Expand vcpuHint to 16 bits 2022-06-22 14:13:14 +02:00
wd33c93.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
wd33c93.h
wd719x.c
wd719x.h
xen-scsifront.c xen/scsifront: don't use gnttab_query_foreign_access() for mapped status 2022-03-11 12:11:54 +01:00
zalon.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
zorro7xx.c scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() 2022-04-13 21:01:04 +02:00
zorro_esp.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00