From: Solar Designer <solar@openwall.com>

Extend the gcc printk format-string checking.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/include/linux/kernel.h |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff -puN include/linux/kernel.h~enable-gcc-warnings-for-vsprintf-vsnprintf-with-format-attribute include/linux/kernel.h
--- 25/include/linux/kernel.h~enable-gcc-warnings-for-vsprintf-vsnprintf-with-format-attribute	Mon Mar 14 15:20:50 2005
+++ 25-akpm/include/linux/kernel.h	Mon Mar 14 15:20:50 2005
@@ -91,17 +91,21 @@ extern unsigned long long simple_strtoul
 extern long long simple_strtoll(const char *,char **,unsigned int);
 extern int sprintf(char * buf, const char * fmt, ...)
 	__attribute__ ((format (printf, 2, 3)));
-extern int vsprintf(char *buf, const char *, va_list);
+extern int vsprintf(char *buf, const char *, va_list)
+	__attribute__ ((format (printf, 2, 0)));
 extern int snprintf(char * buf, size_t size, const char * fmt, ...)
 	__attribute__ ((format (printf, 3, 4)));
-extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
+extern int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
+	__attribute__ ((format (printf, 3, 0)));
 extern int scnprintf(char * buf, size_t size, const char * fmt, ...)
 	__attribute__ ((format (printf, 3, 4)));
-extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
+extern int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
+	__attribute__ ((format (printf, 3, 0)));
 
 extern int sscanf(const char *, const char *, ...)
-	__attribute__ ((format (scanf,2,3)));
-extern int vsscanf(const char *, const char *, va_list);
+	__attribute__ ((format (scanf, 2, 3)));
+extern int vsscanf(const char *, const char *, va_list)
+	__attribute__ ((format (scanf, 2, 0)));
 
 extern int get_option(char **str, int *pint);
 extern char *get_options(const char *str, int nints, int *ints);
@@ -111,7 +115,8 @@ extern int __kernel_text_address(unsigne
 extern int kernel_text_address(unsigned long addr);
 extern int session_of_pgrp(int pgrp);
 
-asmlinkage int vprintk(const char *fmt, va_list args);
+asmlinkage int vprintk(const char *fmt, va_list args)
+	__attribute__ ((format (printf, 1, 0)));
 asmlinkage int printk(const char * fmt, ...)
 	__attribute__ ((format (printf, 1, 2)));
 
_