summaryrefslogtreecommitdiff
path: root/drivers/iio/accel/bmc150-accel-core.c
diff options
context:
space:
mode:
authorJonathan Cameron <Jonathan.Cameron@huawei.com>2020-07-22 18:50:38 +0300
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2020-08-22 13:38:48 +0300
commit89226a296d816727405d3fea684ef69e7d388bd8 (patch)
treea39833ddb5e0497f250188c33304a422a4ec5012 /drivers/iio/accel/bmc150-accel-core.c
parent95ad67577de4ea08eb8e441394e698aa4addcc0b (diff)
downloadlinux-89226a296d816727405d3fea684ef69e7d388bd8.tar.xz
iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
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: c7eeea93ac60 ("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>
Diffstat (limited to 'drivers/iio/accel/bmc150-accel-core.c')
0 files changed, 0 insertions, 0 deletions