bpftool: Fix a wrong type cast in btf_dumper_int
authorLam Thai <lamthai@arista.com>
Wed, 24 Aug 2022 22:59:00 +0000 (15:59 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Oct 2022 10:34:39 +0000 (12:34 +0200)
[ Upstream commit 7184aef9c0f7a81db8fd18d183ee42481d89bf35 ]

When `data` points to a boolean value, casting it to `int *` is problematic
and could lead to a wrong value being passed to `jsonw_bool`. Change the
cast to `bool *` instead.

Fixes: b12d6ec09730 ("bpf: btf: add btf print functionality")
Signed-off-by: Lam Thai <lamthai@arista.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Reviewed-by: Quentin Monnet <quentin@isovalent.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/20220824225859.9038-1-lamthai@arista.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/bpf/bpftool/btf_dumper.c

index 9c25286..70fb26a 100644 (file)
@@ -418,7 +418,7 @@ static int btf_dumper_int(const struct btf_type *t, __u8 bit_offset,
                                             *(char *)data);
                break;
        case BTF_INT_BOOL:
-               jsonw_bool(jw, *(int *)data);
+               jsonw_bool(jw, *(bool *)data);
                break;
        default:
                /* shouldn't happen */