From: Manu Bretelle Date: Wed, 18 Oct 2023 23:01:32 +0000 (-0700) Subject: bpftool: Fix printing of pointer value X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=90704b4be0b0d6d0a7a9369d4b9aae6a579602c7;p=linux.git bpftool: Fix printing of pointer value When printing a pointer value, "%p" will either print the hexadecimal value of the pointer (e.g `0x1234`), or `(nil)` when NULL. Both of those are invalid json "integer" values and need to be wrapped in quotes. Before: ``` $ sudo bpftool struct_ops dump name ned_dummy_cca | grep next "next": (nil), $ sudo bpftool struct_ops dump name ned_dummy_cca | \ jq '.[1].bpf_struct_ops_tcp_congestion_ops.data.list.next' parse error: Invalid numeric literal at line 29, column 34 ``` After: ``` $ sudo ./bpftool struct_ops dump name ned_dummy_cca | grep next "next": "(nil)", $ sudo ./bpftool struct_ops dump name ned_dummy_cca | \ jq '.[1].bpf_struct_ops_tcp_congestion_ops.data.list.next' "(nil)" ``` Signed-off-by: Manu Bretelle Signed-off-by: Daniel Borkmann Tested-by: Eduard Zingerman Acked-by: Eduard Zingerman Acked-by: Quentin Monnet Link: https://lore.kernel.org/bpf/20231018230133.1593152-2-chantr4@gmail.com --- diff --git a/tools/bpf/bpftool/btf_dumper.c b/tools/bpf/bpftool/btf_dumper.c index 1b7f697146041..527fe867a8fbd 100644 --- a/tools/bpf/bpftool/btf_dumper.c +++ b/tools/bpf/bpftool/btf_dumper.c @@ -127,7 +127,7 @@ static void btf_dumper_ptr(const struct btf_dumper *d, print_ptr_value: if (d->is_plain_text) - jsonw_printf(d->jw, "%p", (void *)value); + jsonw_printf(d->jw, "\"%p\"", (void *)value); else jsonw_printf(d->jw, "%lu", value); }