diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2022-05-21 11:16:24 +0200 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2022-05-21 11:18:40 +0200 |
| commit | 7d990b119a6249af9a1ef4f3df9957d8975b56b2 (patch) | |
| tree | fd21e6b95ea88839593466e8c6f4db304f942824 /validation/byte-count-max.c | |
| parent | c4706aa764f3ae68258ba60be6325a5662900362 (diff) | |
| parent | d08822184fe1d4557beca97c2e3599ffc3668e50 (diff) | |
| download | sparse-dev-7d990b119a6249af9a1ef4f3df9957d8975b56b2.tar.gz | |
Merge branch 'next-ramsay'
* fix regression disabling the 'memcpy-max-count' check.
* warn about a 'case label' on empty statement
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/byte-count-max.c')
| -rw-r--r-- | validation/byte-count-max.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/validation/byte-count-max.c b/validation/byte-count-max.c new file mode 100644 index 00000000..0555a505 --- /dev/null +++ b/validation/byte-count-max.c @@ -0,0 +1,28 @@ +typedef unsigned long int size_t; +typedef unsigned long ulong; + +extern void *memset(void *s, int c, size_t n); +extern void *memcpy(void *dest, void *src, size_t n); +extern ulong copy_to_user(void *to, const void *from, ulong count); +extern ulong copy_from_user(void *to, const void *from, ulong count); + +static void func (char *s) +{ + char d[250000]; + + memset(d, 0, 250000); + memcpy(d, s, 250000); + copy_to_user(s, d, 250000); + copy_from_user(d, s, 250000); +} + +/* + * check-name: byte-count-max + * + * check-error-start +byte-count-max.c:13:15: warning: memset with byte count of 250000 +byte-count-max.c:14:15: warning: memcpy with byte count of 250000 +byte-count-max.c:15:21: warning: copy_to_user with byte count of 250000 +byte-count-max.c:16:23: warning: copy_from_user with byte count of 250000 + * check-error-end + */ |
