Re: [PATCH v1 1/1] audit: Mark audit_log_vformat() with __printf() attribute

Paul Moore
2025-03-12T20:16:49Z

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