From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
To: Christian Eggers <ceggers@arri.de>, Jonathan Cameron <jic23@kernel.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 10/11] iio: light: as73211: fix information leak in triggered buffer
Date: Mon, 2 Dec 2024 20:14:53 +0100 [thread overview]
Message-ID: <cce23b3b-aff6-4d3b-a55e-d0ce67a6a650@gmail.com> (raw)
In-Reply-To: <7089293.9J7NaK4W3v@n9w6sw14>
On 02/12/2024 19:00, Christian Eggers wrote:
> Hi Jonathan, hi Javier,
>
> On Monday, 2 December 2024, 16:38:50 CET, Javier Carrasco wrote:
>> On 30/11/2024 21:49, Jonathan Cameron wrote:
>>> On Mon, 25 Nov 2024 22:16:18 +0100
>>> Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:
>>>
>>>> The 'scan' local struct is used to push data to userspace from a
>>>> triggered buffer, but it leaves the first channel uninitialized if
>>>> AS73211_SCAN_MASK_ALL is not set. That is used to optimize color channel
>>>> readings.
>>>>
>>>> Set the temperature channel to zero if only color channels are
>>>> relevant to avoid pushing uninitialized information to userspace.
>>>>
>>>> Cc: stable@vger.kernel.org
>>>> Fixes: 403e5586b52e ("iio: light: as73211: New driver")
>>>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
>>> Huh.
>>>
>>> If the temperature channel is turned off the data should shift. So should be read
>>> into scan.chan[0] and [1] and [2], but not [3].
>>>
>>> Not skipping [0] as here.
>>>
>>> So this code path currently doesn't work as far as I can tell.
>
> I've just tested and you are right! In our application we never had the case that
> we didn't read the temperature channel. If I don't enable scan_elements/in_temp_en,
> I need to put the data into scan.chan[0..2] in order to get correct values in my
> application. This also means that the "Optimization for reading only color channel"
> (and the following saturation block) isn't correct at all, especially if reading only
> one or two of the available channels.
>
>>>
>>> Jonathan
>>>
>>>> ---
>>>> drivers/iio/light/as73211.c | 3 +++
>>>> 1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/drivers/iio/light/as73211.c b/drivers/iio/light/as73211.c
>>>> index be0068081ebb..99679b686146 100644
>>>> --- a/drivers/iio/light/as73211.c
>>>> +++ b/drivers/iio/light/as73211.c
>>>> @@ -675,6 +675,9 @@ static irqreturn_t as73211_trigger_handler(int irq __always_unused, void *p)
>>>> (char *)&scan.chan[1], 3 * sizeof(scan.chan[1]));
>>>> if (ret < 0)
>>>> goto done;
>>>> +
>>>> + /* Avoid leaking uninitialized data */
>>>> + scan.chan[0] = 0;
>>>> }
>>>>
>>>> if (data_result) {
>>>>
>>>
>>
>> Adding the driver maintainer (should have been added from the beginning)
>> to the conversation.
>>
>> @Christian, could you please confirm this?
>>
>> Apparently, the optimization to read the color channels without
>> temperature is not right. I don't have access to the AS7331 at the
>> moment, but I remember that you could test my patches on your hardware
>> with an AS73211, so maybe you can confirm whether wrong data is
>> delivered or not in that case.
>
> Yes, the delivered data is wrong (as already stated above).
>
> @Javier: If you like to rework this, I can test your patches (I have still
> access to the hardware). Otherwise I can also try to fix this on my own.
>
>>
>> Thanks and best regards,
>> Javier Carrasco
>
> Thanks for reporting this!
> Christian
>>
>>
>
Thanks for your prompt reply. I will rework it for v2, as the current
patch does not apply. For this path, scan.chan[0]..scan.chan[2] will be
read from the sensor, and scan.chan[3] will be set to zero.
Best regards,
Javier Carrasco
next prev parent reply other threads:[~2024-12-02 19:14 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-25 21:16 [PATCH 00/11] iio: fix information leaks in triggered buffers Javier Carrasco
2024-11-25 21:16 ` [PATCH 01/11] iio: temperature: tmp006: fix information leak in triggered buffer Javier Carrasco
2024-12-02 19:28 ` Javier Carrasco
2024-12-08 18:36 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 02/11] iio: adc: ti-ads1119: " Javier Carrasco
2024-11-26 8:59 ` Francesco Dolcini
2024-11-26 9:46 ` Javier Carrasco
2024-11-26 18:52 ` Jonathan Cameron
2024-11-26 22:00 ` Javier Carrasco
2024-11-27 0:30 ` Javier Carrasco
2024-11-30 20:43 ` Jonathan Cameron
2024-11-30 21:00 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 03/11] iio: pressure: zpa2326: " Javier Carrasco
2024-11-30 20:59 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 04/11] iio: adc: rockchip_saradc: " Javier Carrasco
2024-11-30 20:59 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 05/11] iio: imu: kmx61: " Javier Carrasco
2024-11-30 20:56 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 06/11] iio: light: vcnl4035: " Javier Carrasco
2024-11-30 20:55 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 07/11] iio: light: bh1745: " Javier Carrasco
2024-11-30 20:53 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 08/11] iio: adc: ti-ads8688: " Javier Carrasco
2024-11-30 20:52 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 09/11] iio: dummy: iio_simply_dummy_buffer: " Javier Carrasco
2024-11-30 20:50 ` Jonathan Cameron
2024-11-25 21:16 ` [PATCH 10/11] iio: light: as73211: " Javier Carrasco
2024-11-30 20:49 ` Jonathan Cameron
2024-12-02 15:38 ` Javier Carrasco
2024-12-02 18:00 ` Christian Eggers
2024-12-02 19:14 ` Javier Carrasco [this message]
2024-11-25 21:16 ` [PATCH 11/11] iio: core: fix doc reference to iio_push_to_buffers_with_ts_unaligned Javier Carrasco
2024-11-30 20:42 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cce23b3b-aff6-4d3b-a55e-d0ce67a6a650@gmail.com \
--to=javier.carrasco.cruz@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=ceggers@arri.de \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox