linux/drivers/ata
Jens Axboe 2d72715017 libata: have ata_scsi_rw_xlat() fail invalid passthrough requests
For passthrough requests, libata-scsi takes what the user passes in
as gospel. This can be problematic if the user fills in the CDB
incorrectly. One example of that is in request sizes. For read/write
commands, the CDB contains fields describing the transfer length of
the request. These should match with the SG_IO header fields, but
libata-scsi currently does no validation of that.

Check that the number of blocks in the CDB for passthrough requests
matches what was mapped into the request. If the CDB asks for more
data then the validated SG_IO header fields, error it.

Reported-by: Krishna Ram Prakash R <krp@gtux.in>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-08-07 12:20:52 -06:00
..
acard-ahci.c ata: acard-ahci: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
ahci_brcm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
ahci_ceva.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
ahci_da850.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_dm816.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_imx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
ahci_mtk.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
ahci_mvebu.c ata: ahci: mvebu: request PHY suspend/resume for Armada 3700 2019-01-11 14:47:51 -07:00
ahci_octeon.c Delete redundant return value check of platform_get_resource() 2017-03-06 15:40:59 -05:00
ahci_platform.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_qoriq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 2019-05-24 17:27:12 +02:00
ahci_seattle.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235 2019-06-19 17:09:07 +02:00
ahci_st.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ahci_sunxi.c drivers: ata: ahci_sunxi: Increased SATA/AHCI DMA TX/RX FIFOs 2019-07-05 10:17:18 -06:00
ahci_tegra.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
ahci_xgene.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
ahci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
ahci.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
ata_generic.c
ata_piix.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
Kconfig ata: add Buddha PATA controller driver 2019-02-08 06:32:01 -07:00
libahci_platform.c ata: libahci: do not complain in case of deferred probe 2019-07-31 08:51:17 -06:00
libahci.c ata: libahci: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
libata-acpi.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
libata-core.c libata: Drop firmware version check from the ST1000LM024 quirk 2019-07-02 15:53:09 -06:00
libata-eh.c libata: don't request sense data on !ZAC ATA devices 2019-06-25 09:22:45 -06:00
libata-pmp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
libata-scsi.c libata: have ata_scsi_rw_xlat() fail invalid passthrough requests 2019-08-07 12:20:52 -06:00
libata-sff.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
libata-trace.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
libata-transport.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 209 2019-05-30 11:29:53 -07:00
libata-transport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
libata-zpodd.c libata: zpodd: Fix small read overflow in zpodd_get_mech_type() 2019-07-29 16:00:14 -06:00
libata.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
Makefile ata: add Buddha PATA controller driver 2019-02-08 06:32:01 -07:00
pata_acpi.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ali.c ata: Deprecate pci_get_bus_and_slot() 2018-01-11 17:23:23 -06:00
pata_amd.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_arasan_cf.c pata_arasan_cf: Delete an unnecessary variable initialisation in arasan_cf_probe() 2018-02-18 05:16:35 -08:00
pata_artop.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_atiixp.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_atp867x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
pata_bk3710.c pata_bk3710: clarify license version and use SPDX header 2018-03-01 13:59:03 -08:00
pata_buddha.c ata: add Buddha PATA controller driver 2019-02-08 06:32:01 -07:00
pata_cmd64x.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_cmd640.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_cs5520.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
pata_cs5530.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_cs5535.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_cs5536.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_cypress.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_efar.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ep93xx.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_falcon.c pata_falcon: clarify license version and use SPDX header 2018-03-01 13:58:17 -08:00
pata_ftide010.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_gayle.c ata: add Amiga Gayle PATA controller driver 2018-03-19 07:41:36 -07:00
pata_hpt3x2n.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_hpt3x3.c
pata_hpt37x.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_hpt366.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_icside.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_imx.c Merge branch 'for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2018-08-24 13:20:33 -07:00
pata_isapnp.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_it821x.c pata_it821x: Delete an error message for a failed memory allocation in it821x_firmware_command() 2018-02-18 05:26:07 -08:00
pata_it8213.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ixp4xx_cf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_jmicron.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_legacy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_macio.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_marvell.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_mpc52xx.c pata_mpc52xx: Delete an error message for a failed memory allocation in mpc52xx_ata_probe() 2018-02-18 05:23:25 -08:00
pata_mpiix.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_netcell.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ninja32.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_ns87410.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_ns87415.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_octeon_cf.c pata_octeon_cf: use of_property_read_{bool|u32}() 2017-08-28 10:44:24 -07:00
pata_of_platform.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_oldpiix.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_opti.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_optidma.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_palmld.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_pcmcia.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_pdc202xx_old.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_pdc2027x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
pata_piccolo.c
pata_platform.c ata: pata_platform: Add IRQF_SHARED to IRQ flags 2019-02-08 06:42:55 -07:00
pata_pxa.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_radisys.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_rb532_cf.c ata: rb532_cf: Fix unused variable warning in rb532_pata_driver_probe 2019-08-06 07:44:59 -06:00
pata_rdc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
pata_rz1000.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_samsung_cf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pata_sc1200.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_sch.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 300 2019-06-05 17:37:00 +02:00
pata_serverworks.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_sil680.c
pata_sis.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_sl82c105.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pata_triflex.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
pata_via.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
pdc_adma.c ata: pdc_adma: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
sata_dwc_460ex.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sata_fsl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sata_gemini.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sata_gemini.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sata_highbank.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
sata_inic162x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 209 2019-05-30 11:29:53 -07:00
sata_mv.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 167 2019-05-30 11:26:39 -07:00
sata_nv.c ata: sata_nv: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
sata_promise.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_promise.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_qstor.c ata:sata_qstor: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
sata_rcar.c sata_rcar: Remove ata_host_alloc() error printing 2019-05-09 11:19:32 -06:00
sata_sil24.c ata: sata_sil24: Remove call to memset after dmam_alloc_coherent 2019-06-29 09:42:23 -06:00
sata_sil.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_sis.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_svw.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_sx4.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_uli.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_via.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sata_vsc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00
sis.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00