tools/bpf/bpftool/xlated_dumper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
The format specifier of "unsigned int" in printf() should be "%u", not
"%d".
Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
---
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;
record = dd->func_info;
for (i = 0; i < len / sizeof(*insn); i++) {
@@ -415,7 +415,7 @@ void dump_xlated_for_graph(struct dump_data *dd, void *buf_start, void *buf_end,
}
}
- printf("%d: ", insn_off);
+ printf("%u: ", insn_off);
print_bpf_insn(&cbs, cur, true);
if (opcodes) {
--
2.17.1
> The format specifier of "unsigned int" in printf() should be "%u", not
> "%d".
Would you like to add any tags (like “Fixes” and “Cc”) accordingly?
…
> ---
> Changes:
…
> v3:fix compile warninf
V3:
Fix a compilation warning?
…
> +++ 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 i;
> + int i;
Please do not change the data type for the variable
if you would like to adjust a subsequent format string.
…
> @@ -415,7 +415,7 @@ void dump_xlated_for_graph(struct dump_data *dd, void *buf_start, void *buf_end,
> }
> }
>
> - printf("%d: ", insn_off);
> + printf("%u: ", insn_off);
> print_bpf_insn(&cbs, cur, true);
…
How do you think about to care more also for the return value from such a function call?
https://wiki.sei.cmu.edu/confluence/display/c/ERR33-C.+Detect+and+handle+standard+library+errors
Regards,
Markus
2024-07-24 03:00 UTC-0700 ~ Zhu Jun <zhujun2@cmss.chinamobile.com>
> The format specifier of "unsigned int" in printf() should be "%u", not
> "%d".
>
> Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
> ---
> 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
© 2016 - 2025 Red Hat, Inc.