lkml.org 
[lkml]   [2023]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH] iio: adc: qcom-pm8xxx-xoadc: Remove useless condition in pm8xxx_xoadc_parse_channel()
    On Tue, Mar 14, 2023 at 8:37 PM Kasumov Ruslan <xhxgldhlpfy@gmail.com> wrote:

    > The left side of the loop condition never becomes false.
    > hwchan cannot be NULL, because it points to elements of the
    > hw_channels array that takes one of 4 predefined values:
    > pm8018_xoadc_channels, pm8038_xoadc_channels,
    > pm8058_xoadc_channels, pm8921_xoadc_channels.
    >
    > Found by Linux Verification Center (linuxtesting.org) with SVACE.

    I am not impressed with that tool. See below:

    > Fixes: 63c3ecd946d4 ("iio: adc: add a driver for Qualcomm PM8xxx HK/XOADC")
    > Signed-off-by: Kasumov Ruslan <s02210418@gse.cs.msu.ru>

    (...)
    > hwchan = &hw_channels[0];
    > - while (hwchan && hwchan->datasheet_name) {
    > + while (hwchan->datasheet_name) {
    > if (hwchan->pre_scale_mux == pre_scale_mux &&
    > hwchan->amux_channel == amux_channel)
    > break;

    NAK have you tested this on a real system?

    Here is the complete loop:

    hwchan = &hw_channels[0];
    while (hwchan && hwchan->datasheet_name) {
    if (hwchan->pre_scale_mux == pre_scale_mux &&
    hwchan->amux_channel == amux_channel)
    break;
    hwchan++;
    chid++;
    }

    Notice how hwchan is used as iterator in hwchan++.

    What you are doing will cause a zero-pointer dereference.

    Whoever is developing "SVACE" needs to fix the tool to understand
    this kind of usage.

    Yours,
    Linus Walleij

    \
     
     \ /
      Last update: 2023-03-27 01:00    [W:3.145 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site