[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aDAk8pUwf6ZjDYQN@stanley.mountain>
Date: Fri, 23 May 2025 10:34:10 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: Amir Goldstein <amir73il@...il.com>
Cc: Charles Han <hanchunchao@...pur.com>, miklos@...redi.hu,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ovl: Fix PTR_ERR zero argument warning
On Mon, May 19, 2025 at 08:43:16AM +0200, Amir Goldstein wrote:
> > @@ -577,7 +579,9 @@ struct dentry *ovl_index_upper(struct ovl_fs *ofs, struct dentry *index,
> > return dget(index);
> >
> > fh = ovl_get_fh(ofs, index, OVL_XATTR_UPPER);
> > - if (IS_ERR_OR_NULL(fh))
> > + if (!fh)
> > + return ERR_PTR(-ENODATA);
> > + else if (IS_ERR(fh))
> > return ERR_CAST(fh);
>
> I don't see what's wrong with casting a NULL pointer.
> This looks like a dubious smatch warning.
>
> We could add ERR_OR_NULL_CAST() but it seems pointless.
The ERR_OR_NULL_CAST() define is kind of a horrible name but I can't
think of a better one... To me, it's easy enough to just ignore
false positives.
This warning obviously does have false positives, but over half the
time it points to real bugs like:
p = kmalloc(sizeof(*p));
if (!p)
return PTR_ERR(p);
Or copy and paste bugs etc. There are lots of ways to get it wrong.
These warnings are always worth checking.
People should generally assume that static checker warnings in old code
are false positives. We're good at fixing all the real bugs. I didn't
report this warning because I knew the code was correct but I did look at
it on Feb 22, 2019. It can sometimes be helpful to look up the warning
on lore. We had a discussion about this one in 2020-04-21:
https://lore.kernel.org/all/?q=ovl_index_upper%20carpenter
regards,
dan carpenter
Powered by blists - more mailing lists