mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
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 commita3fa71c40f
("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 commit5ce1aca814
("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>
This commit is contained in:
parent
7f9be77555
commit
8db1486065
12 changed files with 36 additions and 30 deletions
|
@ -122,7 +122,7 @@ static inline __printf(1, 2) __cold
|
|||
void early_printk(const char *s, ...) { }
|
||||
#endif
|
||||
|
||||
typedef int(*printk_func_t)(const char *fmt, va_list args);
|
||||
typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
|
||||
|
||||
#ifdef CONFIG_PRINTK
|
||||
asmlinkage __printf(5, 0)
|
||||
|
@ -166,7 +166,7 @@ char *log_buf_addr_get(void);
|
|||
u32 log_buf_len_get(void);
|
||||
void log_buf_kexec_setup(void);
|
||||
void __init setup_log_buf(int early);
|
||||
void dump_stack_set_arch_desc(const char *fmt, ...);
|
||||
__printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...);
|
||||
void dump_stack_print_info(const char *log_lvl);
|
||||
void show_regs_print_info(const char *log_lvl);
|
||||
#else
|
||||
|
@ -217,7 +217,7 @@ static inline void setup_log_buf(int early)
|
|||
{
|
||||
}
|
||||
|
||||
static inline void dump_stack_set_arch_desc(const char *fmt, ...)
|
||||
static inline __printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue