Merge branch 'libbpf: fix several issues reported by static analysers'
Viktor Malik says: ==================== Fixing several issues reported by Coverity and Clang Static Analyzer (scan-build) for libbpf, mostly removing unnecessary symbols and assignments. No functional changes should be introduced. ==================== Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
This commit is contained in:
commit
07e2193f10
|
@ -1000,8 +1000,6 @@ static struct btf *btf_parse_elf(const char *path, struct btf *base_btf,
|
|||
}
|
||||
}
|
||||
|
||||
err = 0;
|
||||
|
||||
if (!btf_data) {
|
||||
pr_warn("failed to find '%s' ELF section in %s\n", BTF_ELF_SEC, path);
|
||||
err = -ENODATA;
|
||||
|
|
|
@ -798,7 +798,6 @@ bpf_object__add_programs(struct bpf_object *obj, Elf_Data *sec_data,
|
|||
progs = obj->programs;
|
||||
nr_progs = obj->nr_programs;
|
||||
nr_syms = symbols->d_size / sizeof(Elf64_Sym);
|
||||
sec_off = 0;
|
||||
|
||||
for (i = 0; i < nr_syms; i++) {
|
||||
sym = elf_sym_by_idx(obj, i);
|
||||
|
@ -2615,7 +2614,7 @@ static int bpf_object__init_maps(struct bpf_object *obj,
|
|||
strict = !OPTS_GET(opts, relaxed_maps, false);
|
||||
pin_root_path = OPTS_GET(opts, pin_root_path, NULL);
|
||||
|
||||
err = err ?: bpf_object__init_user_btf_maps(obj, strict, pin_root_path);
|
||||
err = bpf_object__init_user_btf_maps(obj, strict, pin_root_path);
|
||||
err = err ?: bpf_object__init_global_data_maps(obj);
|
||||
err = err ?: bpf_object__init_kconfig_map(obj);
|
||||
err = err ?: bpf_object__init_struct_ops_maps(obj);
|
||||
|
|
|
@ -1997,7 +1997,6 @@ add_sym:
|
|||
static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *obj)
|
||||
{
|
||||
struct src_sec *src_symtab = &obj->secs[obj->symtab_sec_idx];
|
||||
struct dst_sec *dst_symtab;
|
||||
int i, err;
|
||||
|
||||
for (i = 1; i < obj->sec_cnt; i++) {
|
||||
|
@ -2030,9 +2029,6 @@ static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *ob
|
|||
return -1;
|
||||
}
|
||||
|
||||
/* add_dst_sec() above could have invalidated linker->secs */
|
||||
dst_symtab = &linker->secs[linker->symtab_sec_idx];
|
||||
|
||||
/* shdr->sh_link points to SYMTAB */
|
||||
dst_sec->shdr->sh_link = linker->symtab_sec_idx;
|
||||
|
||||
|
@ -2049,16 +2045,13 @@ static int linker_append_elf_relos(struct bpf_linker *linker, struct src_obj *ob
|
|||
dst_rel = dst_sec->raw_data + src_sec->dst_off;
|
||||
n = src_sec->shdr->sh_size / src_sec->shdr->sh_entsize;
|
||||
for (j = 0; j < n; j++, src_rel++, dst_rel++) {
|
||||
size_t src_sym_idx = ELF64_R_SYM(src_rel->r_info);
|
||||
size_t sym_type = ELF64_R_TYPE(src_rel->r_info);
|
||||
Elf64_Sym *src_sym, *dst_sym;
|
||||
size_t dst_sym_idx;
|
||||
size_t src_sym_idx, dst_sym_idx, sym_type;
|
||||
Elf64_Sym *src_sym;
|
||||
|
||||
src_sym_idx = ELF64_R_SYM(src_rel->r_info);
|
||||
src_sym = src_symtab->data->d_buf + sizeof(*src_sym) * src_sym_idx;
|
||||
|
||||
dst_sym_idx = obj->sym_map[src_sym_idx];
|
||||
dst_sym = dst_symtab->raw_data + sizeof(*dst_sym) * dst_sym_idx;
|
||||
dst_rel->r_offset += src_linked_sec->dst_off;
|
||||
sym_type = ELF64_R_TYPE(src_rel->r_info);
|
||||
dst_rel->r_info = ELF64_R_INFO(dst_sym_idx, sym_type);
|
||||
|
|
|
@ -1551,9 +1551,6 @@ int __bpf_core_types_match(const struct btf *local_btf, __u32 local_id, const st
|
|||
if (level <= 0)
|
||||
return -EINVAL;
|
||||
|
||||
local_t = btf_type_by_id(local_btf, local_id);
|
||||
targ_t = btf_type_by_id(targ_btf, targ_id);
|
||||
|
||||
recur:
|
||||
depth--;
|
||||
if (depth < 0)
|
||||
|
|
Loading…
Reference in New Issue