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

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

 



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.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx>
---
 sparse.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sparse.c b/sparse.c
index bceacd94e..5f53a9b9b 100644
--- a/sparse.c
+++ b/sparse.c
@@ -153,6 +153,8 @@ static void check_byte_count(struct instruction *insn, pseudo_t count)
 		return;
 	if (count->type == PSEUDO_VAL) {
 		unsigned long long val = count->value;
+		if (val == -1ULL)
+			return;
 		if (Wmemcpy_max_count && val > fmemcpy_max_count)
 			warning(insn->pos, "%s with byte count of %llu",
 				show_ident(insn->func->sym->ident), val);
-- 
2.16.0

--
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