diff options
author | Nicolas Iooss <nicolas.iooss_linux@m4x.org> | 2015-07-17 16:23:42 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-07-17 16:39:53 -0700 |
commit | 8db1486065141e619e4855b84e350ef32064f7e1 (patch) | |
tree | 438cace62ece1251656b38fbf428cf5aa5184fb8 /include/linux/mmiotrace.h | |
parent | 7f9be77555bb2e52de84e9dddf7b4eb20cc6e171 (diff) | |
download | linux-stable-8db1486065141e619e4855b84e350ef32064f7e1.tar.gz linux-stable-8db1486065141e619e4855b84e350ef32064f7e1.tar.bz2 linux-stable-8db1486065141e619e4855b84e350ef32064f7e1.zip |
include, lib: add __printf attributes to several function prototypes
Using __printf attributes helps to detect several format string issues
at compile time (even though -Wformat-security is currently disabled in
Makefile). For example it can detect when formatting a pointer as a
number, like the issue fixed in commit a3fa71c40f18 ("wl18xx: show
rx_frames_per_rates as an array as it really is"), or when the arguments
do not match the format string, c.f. for example commit 5ce1aca81435
("reiserfs: fix __RASSERT format string").
To prevent similar bugs in the future, add a __printf attribute to every
function prototype which needs one in include/linux/ and lib/. These
functions were mostly found by using gcc's -Wsuggest-attribute=format
flag.
Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Joel Becker <jlbec@evilplan.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/mmiotrace.h')
-rw-r--r-- | include/linux/mmiotrace.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h index c5d52780d6a0..3ba327af055c 100644 --- a/include/linux/mmiotrace.h +++ b/include/linux/mmiotrace.h @@ -106,6 +106,6 @@ extern void enable_mmiotrace(void); extern void disable_mmiotrace(void); extern void mmio_trace_rw(struct mmiotrace_rw *rw); extern void mmio_trace_mapping(struct mmiotrace_map *map); -extern int mmio_trace_printk(const char *fmt, va_list args); +extern __printf(1, 0) int mmio_trace_printk(const char *fmt, va_list args); #endif /* _LINUX_MMIOTRACE_H */ |