From e307581009908357571f85608e8a02f890572be3 Mon Sep 17 00:00:00 2001 From: Hengqi Chen Date: Sun, 6 Mar 2022 21:54:46 +0800 Subject: [PATCH] BTF-playground: Handle error and free resources explicitly Signed-off-by: Hengqi Chen --- BTF-playground/btf_module_read.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/BTF-playground/btf_module_read.c b/BTF-playground/btf_module_read.c index 8bebc43..93a29e5 100644 --- a/BTF-playground/btf_module_read.c +++ b/BTF-playground/btf_module_read.c @@ -35,9 +35,9 @@ int print_all_levels(enum libbpf_print_level level, int main(int argc, char **argv) { - struct btf *vmlinux_btf, *module_btf; + struct btf *vmlinux_btf, *module_btf = NULL; int opt, longindex = 0; - __s32 type_id; + __s32 type_id; int err = 0; /* Parse commands line args */ @@ -46,7 +46,6 @@ int main(int argc, char **argv) switch (opt) { case 'd': libbpf_set_print(print_all_levels); - // verifier_logs = true; break; default: pr_err("Unrecognized option '%s'\n", argv[optind - 1]); @@ -66,17 +65,25 @@ int main(int argc, char **argv) module_btf = btf__load_module_btf(module_name, vmlinux_btf); err = libbpf_get_error(module_btf); if (err) { - pr_err("ERROR(%d): btf__load_module_btf() module_name:%s\n", + pr_err("ERROR(%d): btf__load_module_btf() module_name: %s\n", err, module_name); goto out; } - type_id = btf__find_by_name(module_btf, symbol_name); + type_id = btf__find_by_name(module_btf, symbol_name); + if (type_id < 0) { + err = type_id; + pr_err("ERROR(%d): btf__find_by_name() symbol_name: %s\n", + err, symbol_name); + goto out; + } printf("Module:%s Symbol:%s have BTF id:%d\n", module_name, symbol_name, type_id); out: + btf__free(module_btf); + btf__free(vmlinux_btf); if (err) return EXIT_FAILURE; return EXIT_SUCCESS;