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;