public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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


  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