linux/drivers/iio
Jonathan Cameron 3cb4aa0027 iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
commit 89226a296d upstream.

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 a 16 byte u8 array 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
ensured by use of an explicit c structure.  This data is allocated
with kzalloc so no data can leak appart from previous readings.

The additional forcing of the 8 byte alignment of the timestamp
is not strictly necessary but makes the code less fragile by
making this explicit.

Fixes: c7eeea93ac ("iio: Add Freescale MMA8452Q 3-axis accelerometer driver")
Reported-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-17 13:45:28 +02:00
..
accel iio:accel:mma8452: Fix timestamp alignment and prevent data leak. 2020-09-17 13:45:28 +02:00
adc iio:adc:ti-adc081c Fix alignment and data leak issues 2020-09-17 13:45:27 +02:00
afe
amplifiers
buffer
chemical iio:chemical:ccs811: Fix timestamp alignment and prevent data leak. 2020-09-17 13:45:28 +02:00
common iio: st_sensors: rely on odr mask to know if odr can be set 2020-04-29 16:31:24 +02:00
counter
dac iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw() 2020-08-21 11:05:31 +02:00
dummy
frequency
gyro iio: st_gyro: Correct data for LSM9DS0 gyro 2020-02-01 09:37:04 +00:00
health iio:health:afe4404 Fix timestamp alignment and prevent data leak. 2020-07-22 09:32:05 +02:00
humidity iio:humidity:hts221 Fix alignment and data leak issues 2020-07-22 09:32:02 +02:00
imu iio: imu: adis16400: fix memory leak 2020-08-05 10:05:59 +02:00
light iio:light:max44000 Fix timestamp alignment and prevent data leak. 2020-09-17 13:45:27 +02:00
magnetometer iio:magnetometer:ak8975 Fix alignment and data leak issues. 2020-09-17 13:45:27 +02:00
multiplexer
orientation
potentiometer
potentiostat
pressure iio:pressure:ms5611 Fix buffer element alignment 2020-07-22 09:32:02 +02:00
proximity iio: srf04: fix wrong limitation in distance measuring 2019-11-12 19:20:40 +01:00
resolver
temperature iio: temperature: mlx90632 Relax the compatibility check 2019-06-25 11:35:54 +08:00
trigger iio: trigger: stm32-timer: disable master mode when stopping 2020-03-25 08:06:10 +01:00
iio_core_trigger.h
iio_core.h
industrialio-buffer.c iio: buffer: align the size of scan bytes to size of the largest element 2020-01-23 08:21:27 +01:00
industrialio-configfs.c
industrialio-core.c iio: core: fix a possible circular locking dependency 2019-04-27 09:36:35 +02:00
industrialio-event.c
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c
industrialio-triggered-event.c
inkern.c
Kconfig
Makefile