2023-11-22 15:29:25

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH] bpf: add __printf() to for printf fmt strings

On 11/22/23 2:36 PM, Ben Dooks wrote:
> The btf_seq_show() and btf_snprintf_show() take a printk format
> string so add a __printf() to these two functions. This fixes the
> following extended warnings:
>
> kernel/bpf/btf.c:7094:29: error: function ‘btf_seq_show’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format]
> kernel/bpf/btf.c:7131:9: error: function ‘btf_snprintf_show’ might be a candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format]
>
> Signed-off-by: Ben Dooks <[email protected]>
> ---
> kernel/bpf/btf.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
> index 15d71d2986d3..46c2e87c383d 100644
> --- a/kernel/bpf/btf.c
> +++ b/kernel/bpf/btf.c
> @@ -7088,8 +7088,8 @@ static void btf_type_show(const struct btf *btf, u32 type_id, void *obj,
> btf_type_ops(t)->show(btf, t, type_id, obj, 0, show);
> }
>
> -static void btf_seq_show(struct btf_show *show, const char *fmt,
> - va_list args)
> +static __printf(2,0) void btf_seq_show(struct btf_show *show, const char *fmt,
> + va_list args)
> {
> seq_vprintf((struct seq_file *)show->target, fmt, args);
> }
> @@ -7122,7 +7122,7 @@ struct btf_show_snprintf {
> int len; /* length we would have written */
> };
>
> -static void btf_snprintf_show(struct btf_show *show, const char *fmt,
> +static __printf(2,0) void btf_snprintf_show(struct btf_show *show, const char *fmt,
> va_list args)
> {

Looks good, only small nit is to fix up kernel-style formatting wrt spacing.

> struct btf_show_snprintf *ssnprintf = (struct btf_show_snprintf *)show;
>