• Jonathan Cameron's avatar
    iio:adc:ina2xx Fix timestamp alignment issue. · f8cd222f
    Jonathan Cameron authored
    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 32 byte 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. The explicit alignment
    isn't technically needed here, but it reduced fragility and avoids
    cut and paste into drivers where it will be needed.
    
    If we want this in older stables will need manual backport due to
    driver reworks.
    
    Fixes: c43a102e ("iio: ina2xx: add support for TI INA2xx Power Monitors")
    Reported-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Cc: Stefan Brüns <stefan.bruens@rwth-aachen.de>
    Cc: Marc Titinger <mtitinger@baylibre.com>
    Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    f8cd222f
ina2xx-adc.c 28 KB