linux/drivers/iio
Jonathan Cameron 89deb13342 iio:magnetometer:mag3110: 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.
This data is allocated with kzalloc() so no data can leak apart from
previous readings.

The explicit alignment of ts is not necessary in this case but
does make the code slightly less fragile so I have included it.

Fixes: 39631b5f95 ("iio: Add Freescale mag3110 magnetometer driver")
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: <Stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200920112742.170751-4-jic23@kernel.org
2020-12-03 19:40:27 +00:00
..
accel iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
adc iio:adc:ti-adc084s021 Tidy up endian types 2020-12-03 19:40:26 +00:00
afe iio: afe: iio-rescale: Simplify with dev_err_probe() 2020-09-03 19:40:50 +01:00
amplifiers iio: amplifiers: hmc425a: Simplify with dev_err_probe() 2020-09-03 19:40:50 +01:00
buffer iio: buffer: Return error if no callback is given 2020-12-03 19:32:40 +00:00
chemical Second set of features and cleanups for IIO in 5.10 2020-09-22 09:45:11 +02:00
common First set of new device support, features and cleanups for IIO in the 5.11 cycle 2020-11-24 08:30:08 +01:00
dac iio: dac: ad7303: remove platform data header 2020-10-10 18:03:28 +01:00
dummy iio: dummy: iio_dummy_evgen: Demote file header and supply description for 'irq_sim_domain' 2020-09-21 18:41:36 +01:00
frequency iio: frequency: adf4350: Replace indio_dev->mlock with own device lock 2020-09-16 18:58:01 +01:00
gyro iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
health Second set of features and cleanups for IIO in 5.10 2020-09-22 09:45:11 +02:00
humidity iio: humidity: hts221: add vdd voltage regulator 2020-12-03 19:32:39 +00:00
imu iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
light iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. 2020-12-03 19:40:27 +00:00
magnetometer iio:magnetometer:mag3110: Fix alignment and data leak issues. 2020-12-03 19:40:27 +00:00
multiplexer iio: multiplexer: iio-mux: Simplify with dev_err_probe() 2020-09-03 19:40:51 +01:00
orientation iio: remove left-over parent assignments 2020-06-14 11:50:04 +01:00
position iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
potentiometer iio: potentiometer: ad5272: Correct polarity of reset 2020-12-03 19:32:42 +00:00
potentiostat iio:potentiostat:lmp91000: Drop of_match_ptr and use generic fw accessors 2020-09-21 18:41:29 +01:00
pressure iio: pressure: bmp280: remove unneeded semicolon 2020-11-01 14:58:54 +00:00
proximity iio: proximity: vl53l0x-i2c add i2c_device_id 2020-11-01 15:28:32 +00:00
resolver iio:resolver:ad2s1200: Drop of_match_ptr protection 2020-09-21 18:41:31 +01:00
temperature iio: ltc2983: Fix of_node refcounting 2020-09-29 17:34:18 +01:00
trigger iio: Remove superfluous of_node assignments 2020-06-14 14:20:08 +01:00
iio_core_trigger.h iio: trigger: make stub functions static inline 2020-08-22 10:53:18 +01:00
iio_core.h iio: core: centralize ioctl() calls to the main chardev 2020-11-14 15:31:25 +00:00
industrialio-buffer.c iio: buffer: Fix demux update 2020-12-03 19:32:44 +00:00
industrialio-configfs.c
industrialio-core.c iio: core: Simplify iio_format_list() 2020-12-03 19:32:44 +00:00
industrialio-event.c iio: core: centralize ioctl() calls to the main chardev 2020-11-14 15:31:25 +00:00
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c iio:trigger: rename try_reenable() to reenable() plus return void 2020-12-03 19:40:26 +00:00
industrialio-triggered-event.c
inkern.c io:core: In iio_map_array_register() cleanup in case of error 2020-12-03 19:40:25 +00:00
Kconfig iio: Kconfig: Provide title for IIO_TRIGGERED_EVENT symbol 2020-09-29 17:27:08 +01:00
Makefile iio: position: Add support for Azoteq IQS624/625 angle sensors 2020-03-27 08:25:59 +00:00
TODO