Re: [PATCH v3] tools/bpf:Fix the wrong format specifier

From: Quentin Monnet
Date: Wed Jul 24 2024 - 06:13:33 EST


2024-07-24 03:00 UTC-0700 ~ Zhu Jun <zhujun2@xxxxxxxxxxxxxxxxxxxx>
> The format specifier of "unsigned int" in printf() should be "%u", not
> "%d".
>
> Signed-off-by: Zhu Jun <zhujun2@xxxxxxxxxxxxxxxxxxxx>
> ---
> Changes:
> v2:modify commit info
> v3:fix compile warninf
>
> tools/bpf/bpftool/xlated_dumper.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/bpf/bpftool/xlated_dumper.c b/tools/bpf/bpftool/xlated_dumper.c
> index 567f56dfd9f1..d9c198e0a875 100644
> --- a/tools/bpf/bpftool/xlated_dumper.c
> +++ b/tools/bpf/bpftool/xlated_dumper.c
> @@ -316,7 +316,7 @@ void dump_xlated_plain(struct dump_data *dd, void *buf, unsigned int len,
> unsigned int nr_skip = 0;
> bool double_insn = false;
> char func_sig[1024];
> - unsigned int i;
> + int i;


Thanks! But unsigned seems relevant here, and it doesn't make much sense
to change the type of the int just because we don't have the right
specifier in the printf(), does it? Sorry, I should have been more
explicit: the warning on v1 and v2 can be addressed by simply removing
the "space flag" from the format string, in other words:

printf("%4u: ", i);

Instead of what you had:

printf("% 4u: ", i);

Quentin