lkml.org 
[lkml]   [2020]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 5.4 047/215] iio:humidity:hdc100x Fix alignment and data leak issues
    From
    Date
    On Mon, 2020-07-20 at 17:35 +0200, Greg Kroah-Hartman wrote:
    > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    >
    > commit ea5e7a7bb6205d24371373cd80325db1bc15eded 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 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.
    []
    > +++ b/drivers/iio/humidity/hdc100x.c
    > @@ -38,6 +38,11 @@ struct hdc100x_data {
    >
    > /* integration time of the sensor */
    > int adc_int_us[2];
    > + /* Ensure natural alignment of timestamp */
    > + struct {
    > + __be16 channels[2];
    > + s64 ts __aligned(8);

    Why does an s64 need __aligned(8) ?
    This seems needlessly redundant.

    Isn't this naturally aligned by the compiler?

    The struct isn't packed.

    \
     
     \ /
      Last update: 2020-07-20 18:59    [W:4.118 / U:0.596 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site