public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute
@ 2025-03-12 20:02 Andy Shevchenko
  2025-03-12 20:16 ` Paul Moore
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2025-03-12 20:02 UTC (permalink / raw)
  To: Paul Moore, Casey Schaufler, audit, linux-kernel
  Cc: Eric Paris, Andy Shevchenko

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(-)

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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute
  2025-03-12 20:02 [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute Andy Shevchenko
@ 2025-03-12 20:16 ` Paul Moore
  2025-03-13  8:50   ` Andy Shevchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Moore @ 2025-03-12 20:16 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Casey Schaufler, audit, linux-kernel, Eric Paris

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

-- 
paul-moore.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute
  2025-03-12 20:16 ` Paul Moore
@ 2025-03-13  8:50   ` Andy Shevchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2025-03-13  8:50 UTC (permalink / raw)
  To: Paul Moore; +Cc: Casey Schaufler, audit, linux-kernel, Eric Paris

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.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-03-13  8:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-12 20:02 [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute Andy Shevchenko
2025-03-12 20:16 ` Paul Moore
2025-03-13  8:50   ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox