linux/drivers/iio/adc
Jonathan Cameron 1e405bc251 iio:adc:ti-ads124s08: Fix alignment and data leak issues.
One of a class of bugs pointed out by Lars in a recent review.
iio_push_to_buffers_with_timestamp() assumes the buffer used is aligned
to the size of the timestamp (8 bytes).  This is not guaranteed in
this driver which uses an array of smaller elements on the stack.
As Lars also noted this anti pattern can involve a leak of data to
userspace and that indeed can happen here.  We close both issues by
moving to a suitable structure in the iio_priv() data with alignment
explicitly requested.  This data is allocated with kzalloc() so no
data can leak apart from previous readings.

In this driver the timestamp can end up in various different locations
depending on what other channels are enabled.  As a result, we don't
use a structure to specify it's position as that would be misleading.

Fixes: e717f8c6df ("iio: adc: Add the TI ads124s08 ADC code")
Reported-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Cc: Dan Murphy <dmurphy@ti.com>
Cc: <Stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200920112742.170751-9-jic23@kernel.org
2020-12-03 19:40:29 +00:00
..
ab8500-gpadc.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ad799x.c iio: adc: ad799x: Demote seemingly unintentional kerneldoc header 2020-07-20 09:03:20 +01:00
ad7091r-base.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ad7091r-base.h iio: adc: ad7091r5: Add scale and external VREF support 2019-11-16 17:06:10 +00:00
ad7091r5.c iio: adc: ad7091r5: Add scale and external VREF support 2019-11-16 17:06:10 +00:00
ad7124.c iio: adc: ad7124: Fix typo in device name 2020-09-20 18:26:44 +01:00
ad7192.c iio: adc: ad7192: move ad7192_of_match table closer to the end of the file 2020-07-20 09:03:37 +01:00
ad7266.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
ad7291.c iio: adc: ad7291: convert to device tree 2020-09-29 17:27:05 +01:00
ad7292.c iio: adc: ad7292: remove unneeded spi_set_drvdata() 2020-11-21 15:15:28 +00:00
ad7298.c iio: adc: ad7298: check regulator for null in ad7298_get_ref_voltage() 2020-12-03 19:32:19 +00:00
ad7476.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
ad7606.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
ad7606.h iio: adc: ad7606: Add support for AD7606B ADC 2019-08-25 16:11:00 +01:00
ad7606_par.c iio: Remove dev_err() usage after platform_get_irq() 2019-08-05 15:59:14 +01:00
ad7606_spi.c iio: adc: ad7606: Add support for AD7606B ADC 2019-08-25 16:11:00 +01:00
ad7766.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
ad7768-1.c iio: adc: ad7768-1: Add channel labels. 2020-11-08 16:07:39 +00:00
ad7780.c Linux 5.8-rc6 2020-07-20 09:37:31 +02:00
ad7791.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
ad7793.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
ad7887.c iio: adc: ad7887: convert probe to device-managed functions 2020-11-14 16:44:59 +00:00
ad7923.c iio: adc: ad7923: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-20 09:02:49 +01:00
ad7949.c iio: adc: ad7949: Fix misspelling issue 2020-09-21 18:41:36 +01:00
ad9467.c iio: adc: ad9467: add support for AD9265 high-speed ADC 2020-09-29 17:27:07 +01:00
ad_sigma_delta.c iio: ad_sigma_delta: Don't put SPI transfer buffer on the stack 2020-12-03 19:32:40 +00:00
adi-axi-adc.c iio: adc: adi-axi-adc: Use kobj_to_dev() instead of container_of() 2020-09-03 19:40:47 +01:00
aspeed_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
at91-sama5d2_adc.c iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
at91_adc.c iio: adc: at91_adc: merge at91_adc_probe_dt back in at91_adc_probe 2020-12-03 19:40:24 +00:00
axp20x_adc.c iio:adc:axp20x: Convert from OF to generic fw / device properties 2020-09-03 19:40:46 +01:00
axp288_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
bcm_iproc_adc.c iio:adc:bcm_iproc: Drop of_match_ptr protection and switch to mod_devicetable.h 2020-09-03 19:40:45 +01:00
berlin2-adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
cc10001_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
cpcap-adc.c iio: adc: cpcap: Fix fall-through warnings for Clang 2020-11-21 15:04:05 +00:00
da9150-gpadc.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
dln2-adc.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
envelope-detector.c iio: adc: envelope-detector: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ep93xx_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
exynos_adc.c iio: adc: exynos: do not rely on 'users' counter in ISR 2020-10-10 17:49:52 +01:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: Replace indio_dev->mlock with own device lock 2020-09-21 18:41:35 +01:00
hi8435.c iio:adc:hi8435: Drop of_match_ptr protection. 2020-07-07 20:24:08 +01:00
hx711.c iio: remove left-over parent assignments 2020-06-14 11:50:04 +01:00
imx7d_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ina2xx-adc.c iio:adc:ina2xx Fix timestamp alignment issue. 2020-08-31 10:47:52 +01:00
ingenic-adc.c First set of new device support, features and cleanups for IIO in the 5.11 cycle 2020-11-24 08:30:08 +01:00
intel_mrfld_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
Kconfig iio: adc: mt6360: Add ADC driver for MT6360 2020-11-08 16:20:18 +00:00
lp8788_adc.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
lpc18xx_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
lpc32xx_adc.c iio:adc:lpc32xx: Drop of_match_ptr protection 2020-07-07 20:24:08 +01:00
ltc2471.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ltc2485.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
ltc2496.c iio:adc:ltc2496: Drop of_match_ptr and use mod_devicetable.h 2020-07-07 20:24:08 +01:00
ltc2497-core.c iio: adc: ltc2497: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ltc2497.c iio:adc:ltc2497 drop of_match_ptr protection 2020-07-07 20:24:09 +01:00
ltc2497.h iio: adc: ltc2497: split protocol independent part in a separate module 2019-12-15 12:15:19 +00:00
Makefile iio: adc: mt6360: Add ADC driver for MT6360 2020-11-08 16:20:18 +00:00
max1027.c iio:adc:max1027: drop of_match_ptr and CONFIG_OF protections 2020-07-07 20:24:08 +01:00
max1118.c iio:adc:max1118 Fix alignment of timestamp and data leak issues 2020-08-31 10:47:52 +01:00
max1241.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
max1363.c iio: adc: max1363: Fix kerneldoc attribute formatting for 'lock' 2020-07-20 09:03:27 +01:00
max9611.c iio: adc: max9611: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-20 09:03:27 +01:00
max11100.c iio:adc:max11100: Drop of_match_ptr protection / add mod_devicetable.h include 2020-07-07 20:24:09 +01:00
mcp320x.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
mcp3422.c iio: adc: mcp3422: fix locking on error path 2020-09-01 16:08:07 +02:00
mcp3911.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
men_z188_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
meson_saradc.c iio: remove unneeded break 2020-11-01 15:31:56 +00:00
mp2629_adc.c iio: adc: mp2629: Add support for mp2629 ADC driver 2020-05-26 10:41:47 +01:00
mt6360-adc.c iio: adc: mt6360: Add ADC driver for MT6360 2020-11-08 16:20:18 +00:00
mt6577_auxadc.c iio: adc: mediatek: fix unset field 2020-11-01 15:22:46 +00:00
mxs-lradc-adc.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
nau7802.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
npcm_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
palmas_gpadc.c iio: adc: palmas_gpadc: use module_platform_driver to simplify the code 2020-09-16 19:09:51 +01:00
qcom-pm8xxx-xoadc.c iio: adc: qcom-pm8xxx-xoadc: Demote standard comment block and supply missing description 2020-07-20 09:03:31 +01:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: fix driver name 2020-09-22 13:33:19 +01:00
qcom-spmi-iadc.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
qcom-spmi-vadc.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
qcom-vadc-common.c iio: adc: Add support for PMIC7 ADC 2020-06-14 11:49:21 +01:00
qcom-vadc-common.h iio: adc: Add support for PMIC7 ADC 2020-06-14 11:49:21 +01:00
rcar-gyroadc.c iio: adc: gyroadc: fix leak of device node iterator 2020-09-29 17:50:51 +01:00
rn5t618-adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
rockchip_saradc.c iio: adc: rockchip_saradc: Demote seemingly unintentional kerneldoc header 2020-07-20 09:03:35 +01:00
sc27xx_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
sd_adc_modulator.c iio:adc:sd_adc_modulator: Drop of_match_ptr and tweak includes 2020-07-07 20:24:09 +01:00
spear_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
stm32-adc-core.c First set of new device support, features and cleanups for IIO in the 5.11 cycle 2020-11-24 08:30:08 +01:00
stm32-adc-core.h iio: adc: stm32-adc: Add check on overrun interrupt 2019-12-15 11:42:17 +00:00
stm32-adc.c First set of new device support, features and cleanups for IIO in the 5.11 cycle 2020-11-24 08:30:08 +01:00
stm32-dfsdm-adc.c sound updates for 5.10 2020-10-15 11:07:44 -07:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: Use devm_platform_get_and_ioremap_resource() 2020-09-29 17:27:06 +01:00
stm32-dfsdm.h ASoC: stm32: dfsdm: add actual resolution trace 2020-10-08 20:44:41 +01:00
stmpe-adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
stx104.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
sun4i-gpadc-iio.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
ti-adc081c.c Merge 5.9-rc5 into staging-next 2020-09-14 06:57:52 +02:00
ti-adc084s021.c iio:adc:ti-adc084s021 Tidy up endian types 2020-12-03 19:40:26 +00:00
ti-adc108s102.c iio:adc:ti-adc108s102: Drop CONFIG_OF and of_match_ptr protections 2020-09-03 19:40:45 +01:00
ti-adc128s052.c iio:adc:ti-adc128s052: drop of_match_ptr protection 2020-09-03 19:40:45 +01:00
ti-adc161s626.c iio:adc:ti-adc161s626: Drop of_match_ptr protection. 2020-07-07 20:24:10 +01:00
ti-adc0832.c iio:adc:ti-adc0832 Fix alignment issue with timestamp 2020-09-21 20:01:51 +01:00
ti-adc12138.c iio:adc:ti-adc12138 Fix alignment issue with timestamp 2020-09-21 20:01:51 +01:00
ti-ads124s08.c iio:adc:ti-ads124s08: Fix alignment and data leak issues. 2020-12-03 19:40:29 +00:00
ti-ads1015.c iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set 2020-08-22 11:38:44 +01:00
ti-ads7950.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti-ads8344.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti-ads8688.c iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
ti-tlc4541.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_adc: Remove a couple of unused 'read' variables 2020-07-20 09:03:11 +01:00
twl4030-madc.c iio: adc: twl4030-madc: Fix misnamed struct attribute 2020-07-20 09:03:14 +01:00
twl6030-gpadc.c iio: adc: twl6030-gpadc: Fix some misdocumentation and formatting issues 2020-07-20 09:03:15 +01:00
vf610_adc.c iio: Move attach/detach of the poll func to the core 2020-06-20 17:34:44 +01:00
viperboard_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
xilinx-xadc-core.c iio: adc: xilinx-xadc: use devm_krealloc() 2020-09-08 13:32:07 +02:00
xilinx-xadc-events.c iio: xilinx-xadc: Fix typo in author's name 2020-03-21 10:25:35 +00:00
xilinx-xadc.h iio: xilinx-xadc: Fix typo in author's name 2020-03-21 10:25:35 +00:00