From: Simon Horman <horms@kernel.org>
To: Andrey Shumilin <shum.sdl@nppct.ru>
Cc: 3chas3@gmail.com, linux-atm-general@lists.sourceforge.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
lvc-project@linuxtesting.org, khoroshilov@ispras.ru,
ykarpov@ispras.ru, vmerzlyakov@ispras.ru, vefanov@ispras.ru
Subject: Re: [PATCH] iphase: Adding a null pointer check
Date: Sat, 23 Mar 2024 16:27:37 +0000 [thread overview]
Message-ID: <20240323162737.GA403975@kernel.org> (raw)
In-Reply-To: <20240323063852.665639-1-shum.sdl@nppct.ru>
On Sat, Mar 23, 2024 at 09:38:52AM +0300, Andrey Shumilin wrote:
> The pointer <dev->desc_tbl[i].iavcc> is dereferenced on line 195.
> Further in the code, it is checked for null on line 204.
> It is proposed to add a check before dereferencing the pointer.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Andrey Shumilin <shum.sdl@nppct.ru>
> ---
> drivers/atm/iphase.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
> index 324148686953..596422fbfacc 100644
> --- a/drivers/atm/iphase.c
> +++ b/drivers/atm/iphase.c
1.
The line immediately above the provided patch is:
if (!dev->desc_tbl[i].timestamp) {
> @@ -192,6 +192,11 @@ static u16 get_desc (IADEV *dev, struct ia_vcc *iavcc) {
> i++;
> continue;
> }
So the dereference will not be hit if .timestamp is zero.
And, lightly examining the code, it seems likely to me
that if .iavcc is NULL then .timestamp is always 0.
As Eric and Jakub have stated in relation to other patches [1][2],
it really would be best to provide a clear explanation of how
the problem can manifest.
[1] https://lore.kernel.org/all/CANn89iK1SO32Zggz5fh4J=NmrVW5RjkdbxJ+-ULP8ysmKXLGvg@mail.gmail.com/
[2] https://lore.kernel.org/all/20240322154337.4f78858c@kernel.org/
> + if (!(iavcc_r = dev->desc_tbl[i].iavcc)) {
> + printk("Fatal err, desc table vcc or skb is NULL\n");
> + i++;
> + continue;
> + }
> ltimeout = dev->desc_tbl[i].iavcc->ltimeout;
> delta = jiffies - dev->desc_tbl[i].timestamp;
> if (delta >= ltimeout) {
2.
A little further down is a check for NULL as described in the patch
description:
if (!dev->desc_tbl[i].txskb || !(iavcc_r = dev->desc_tbl[i].iavcc))
printk("Fatal err, desc table vcc or skb is NULL\n");
Assuming the proposed check should be added (which I do not believe
is the case) then I believe that the "skb" portion of the message
that has been copied from the existing check relates to checking
.txskb. So either .txskb should also be checked or the "skb" portion of the
message should be dropped.
3.
After a quick scan it seems to me that all changes to this file since the
beginning of git history relate to tree-wide changes, clean-ups, addressing
problems flagged by static analysis, and so on.
I do not see a single commit to this file relating to real work on this driver,
f.e. addressing a problem observed by someone using the driver.
If so (please check!) perhaps we should discuss removing it?
--
pw-bot: changes-requested
next prev parent reply other threads:[~2024-03-23 16:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-23 6:38 [PATCH] iphase: Adding a null pointer check Andrey Shumilin
2024-03-23 16:27 ` Simon Horman [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-11-07 12:36 Andrey Shumilin
2023-11-09 2:40 ` Jakub Kicinski
2024-01-08 17:28 ` Alexey Khoroshilov
2023-11-07 11:24 Andrey Shumilin
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=20240323162737.GA403975@kernel.org \
--to=horms@kernel.org \
--cc=3chas3@gmail.com \
--cc=khoroshilov@ispras.ru \
--cc=linux-atm-general@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lvc-project@linuxtesting.org \
--cc=netdev@vger.kernel.org \
--cc=shum.sdl@nppct.ru \
--cc=vefanov@ispras.ru \
--cc=vmerzlyakov@ispras.ru \
--cc=ykarpov@ispras.ru \
/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;
as well as URLs for NNTP newsgroup(s).