Re: [PATCH] quiet memset() warning with sizeof(VLA)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Feb 17, 2018 at 11:18:26AM -0800, Josh Triplett wrote:
> On Sat, Feb 17, 2018 at 05:58:39PM +0100, Luc Van Oostenryck wrote:
> > Currently, sparse doesn't handle yet VLA's sizeof(). The size
> > of a VLA is considered as zero and the result of sizeof() on
> > a VLA is treated as an error with a value of -1.
> > 
> > That's a problem with the check done by the sparse tool, which
> > warn when operations like memset() are done with a static count
> > which is above some limit. Of course, all this is done with
> > unsigned numbers and the -1 from sizeof(VLA) is then considered
> > as off-limit.
> > 
> > Sure, size of VLAs should be supported but it's longer term.
> > One short term solution would be to do the check with signed
> > numbers but that would eat the upper bit of the limit which
> > may well be the bound that we would like to check.
> > 
> > So, check instead for sizes of -1, which must come from some
> > previous errors that must have already been reported, and do
> > not issue the memset() warning in this case.
> 
> I'm concerned about generically ignoring this warning for *all* -1
> sizes, because -1 seems like a very common value to slip through for
> other reasons.  Losing those very real warnings just to avoid getting a
> second warning on a VLA doesn't seem worth it.

Yes, I think you're right.
 
> (Also, at the very *least* this would need a comment explaining *why* it
> ignores -1.)
> 
> Could you somehow propagate a taintedness on that value that causes the
> memset to ignore it? Or just change the dummy error value to 0?

Yes, that could be a solution (but changing it to zero seems to me as
bad). I'll look for something but I think I'll just better spend a bit
time on having real support for VLA's size.

Thanks for the review
-- Luc
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux