OSDN Git Service

libbpf: Fix NULL pointer exception in API btf_dump__dump_type_data
authorXin Liu <liuxin350@huawei.com>
Sat, 17 Sep 2022 08:48:09 +0000 (16:48 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Wed, 21 Sep 2022 00:34:09 +0000 (17:34 -0700)
We found that function btf_dump__dump_type_data can be called by the
user as an API, but in this function, the `opts` parameter may be used
as a null pointer.This causes `opts->indent_str` to trigger a NULL
pointer exception.

Fixes: 2ce8450ef5a3 ("libbpf: add bpf_object__open_{file, mem} w/ extensible opts")
Signed-off-by: Xin Liu <liuxin350@huawei.com>
Signed-off-by: Weibin Kong <kongweibin2@huawei.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220917084809.30770-1-liuxin350@huawei.com
tools/lib/bpf/btf_dump.c

index 627edb5..4221f73 100644 (file)
@@ -2385,7 +2385,7 @@ int btf_dump__dump_type_data(struct btf_dump *d, __u32 id,
        d->typed_dump->indent_lvl = OPTS_GET(opts, indent_level, 0);
 
        /* default indent string is a tab */
-       if (!opts->indent_str)
+       if (!OPTS_GET(opts, indent_str, NULL))
                d->typed_dump->indent_str[0] = '\t';
        else
                libbpf_strlcpy(d->typed_dump->indent_str, opts->indent_str,