Message ID | 20250312200216.104986-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Paul Moore |
Headers | show |
Series | [v1,1/1] audit: Mark audit_log_vformat() with __printf() attribute | expand |
On Wed, Mar 12, 2025 at 4:02 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > audit_log_vformat() is using printf() type of format, and compiler > is not happy about this: > > kernel/audit.c:1978:9: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] > kernel/audit.c:1987:17: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] > > Fix the compilation errors by adding __printf() attribute. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > kernel/audit.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) It would be good to list the compiler version/flags that triggers this error in the patch description as I've compiled the audit code quite a bit and haven't seen these errors :) > diff --git a/kernel/audit.c b/kernel/audit.c > index 5f5bf85bcc90..f365e1bbeac6 100644 > --- a/kernel/audit.c > +++ b/kernel/audit.c > @@ -1956,8 +1956,8 @@ static inline int audit_expand(struct audit_buffer *ab, int extra) > * will be called a second time. Currently, we assume that a printk > * can't format message larger than 1024 bytes, so we don't either. > */ > -static void audit_log_vformat(struct audit_buffer *ab, const char *fmt, > - va_list args) > +static __printf(2, 0) > +void audit_log_vformat(struct audit_buffer *ab, const char *fmt, va_list args) > { > int len, avail; > struct sk_buff *skb; > -- > 2.47.2
On Wed, Mar 12, 2025 at 04:16:36PM -0400, Paul Moore wrote: > On Wed, Mar 12, 2025 at 4:02 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > > > audit_log_vformat() is using printf() type of format, and compiler > > is not happy about this: > > > > kernel/audit.c:1978:9: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] > > kernel/audit.c:1987:17: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] > > > > Fix the compilation errors by adding __printf() attribute. > It would be good to list the compiler version/flags that triggers this > error in the patch description CONFIG_WERROR=y (this is default), gcc (Debian 14.2.0-17) 14.2.0, `make W=1`. > as I've compiled the audit code quite a bit and haven't seen these errors :) Good for you, I have 100% reproducibility of this :-) I'll do a v2 today.
diff --git a/kernel/audit.c b/kernel/audit.c index 5f5bf85bcc90..f365e1bbeac6 100644 --- a/kernel/audit.c +++ b/kernel/audit.c @@ -1956,8 +1956,8 @@ static inline int audit_expand(struct audit_buffer *ab, int extra) * will be called a second time. Currently, we assume that a printk * can't format message larger than 1024 bytes, so we don't either. */ -static void audit_log_vformat(struct audit_buffer *ab, const char *fmt, - va_list args) +static __printf(2, 0) +void audit_log_vformat(struct audit_buffer *ab, const char *fmt, va_list args) { int len, avail; struct sk_buff *skb;
audit_log_vformat() is using printf() type of format, and compiler is not happy about this: kernel/audit.c:1978:9: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] kernel/audit.c:1987:17: error: function ‘audit_log_vformat’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] Fix the compilation errors by adding __printf() attribute. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- kernel/audit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)