libbpf-1.2.0-3.fc40

List of Defects

Error: GCC_ANALYZER_WARNING (CWE-401): [#def1]
libbpf-1.2.0-build/libbpf-1.2.0/include/linux/err.h:15:16: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘btf_new’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c:22: included_from: Included from here.
libbpf-1.2.0-build/libbpf-1.2.0/src/libbpf_internal.h:156:33: note: in expansion of macro ‘__pr’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c:226:17: note: in expansion of macro ‘pr_debug’
#   13|   static inline void * ERR_PTR(long error_)
#   14|   {
#   15|-> 	return (void *) error_;
#   16|   }
#   17|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
libbpf-1.2.0-build/libbpf-1.2.0/include/linux/err.h:15:16: warning[-Wanalyzer-malloc-leak]: leak of ‘btf’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘btf_new’
#   13|   static inline void * ERR_PTR(long error_)
#   14|   {
#   15|-> 	return (void *) error_;
#   16|   }
#   17|   

Error: CPPCHECK_WARNING: [#def3]
libbpf-1.2.0-build/libbpf-1.2.0/src/bpf.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: GCC_ANALYZER_WARNING (CWE-122): [#def4]
libbpf-1.2.0-build/libbpf-1.2.0/src/bpf_prog_linfo.c: scope_hint: In function ‘dissect_jited_func’
libbpf-1.2.0-build/libbpf-1.2.0/src/bpf_prog_linfo.c:79:64: warning[-Wanalyzer-out-of-bounds]: heap-based buffer overflow
#   77|   		goto errout;
#   78|   
#   79|-> 	prog_linfo->nr_jited_linfo_per_func[nr_jited_func - 1] =
#   80|   		nr_linfo - prev_i;
#   81|   

Error: CPPCHECK_WARNING: [#def5]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: GCC_ANALYZER_WARNING (CWE-401): [#def6]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘btf_parse_elf.part.0’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c:935:24: warning[-Wanalyzer-malloc-leak]: leak of ‘btf’
#  933|   	if (elf_version(EV_CURRENT) == EV_NONE) {
#  934|   		pr_warn("failed to init libelf for %s\n", path);
#  935|-> 		return ERR_PTR(-LIBBPF_ERRNO__LIBELF);
#  936|   	}
#  937|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def7]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘btf_parse’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c:1078:19: warning[-Wanalyzer-malloc-leak]: leak of ‘btf_parse_raw(path,  base_btf)’
# 1076|   		goto err_out;
# 1077|   	}
# 1078|-> 	if (magic != BTF_MAGIC && magic != bswap_16(BTF_MAGIC)) {
# 1079|   		/* definitely not a raw BTF */
# 1080|   		err = -EPROTO;

Error: GCC_ANALYZER_WARNING (CWE-476): [#def8]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.h:322:31: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
libbpf-1.2.0-build/libbpf-1.2.0/include/uapi/linux/btf.h:55:36: note: in definition of macro ‘BTF_INFO_KIND’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘determine_ptr_size.part.0’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c:19: included_from: Included from here.
libbpf-1.2.0-build/libbpf-1.2.0/include/uapi/linux/btf.h:55:36: note: in definition of macro ‘BTF_INFO_KIND’
#  320|   static inline __u16 btf_kind(const struct btf_type *t)
#  321|   {
#  322|-> 	return BTF_INFO_KIND(t->info);
#  323|   }
#  324|   

Error: GCC_ANALYZER_WARNING (CWE-476): [#def9]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.h:327:31: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘t’
libbpf-1.2.0-build/libbpf-1.2.0/include/uapi/linux/btf.h:56:35: note: in definition of macro ‘BTF_INFO_VLEN’
libbpf-1.2.0-build/libbpf-1.2.0/src/btf.c: scope_hint: In function ‘btf_type_size’
libbpf-1.2.0-build/libbpf-1.2.0/include/uapi/linux/btf.h:56:35: note: in definition of macro ‘BTF_INFO_VLEN’
#  325|   static inline __u16 btf_vlen(const struct btf_type *t)
#  326|   {
#  327|-> 	return BTF_INFO_VLEN(t->info);
#  328|   }
#  329|   

Error: CPPCHECK_WARNING: [#def10]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf_dump.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CLANG_WARNING: [#def11]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf_dump.c:191:9: warning[unix.Malloc]: Potential leak of memory pointed to by 'd'
#  189|   err:
#  190|   	btf_dump__free(d);
#  191|-> 	return libbpf_err_ptr(err);
#  192|   }
#  193|   

Error: CLANG_WARNING: [#def12]
libbpf-1.2.0-build/libbpf-1.2.0/src/btf_dump.c:1782:16: warning[core.BitwiseShift]: Left shift by '64' overflows the capacity of '__u64'
# 1780|   	right_shift_bits = 64 - bit_sz;
# 1781|   
# 1782|-> 	*value = (num << left_shift_bits) >> right_shift_bits;
# 1783|   
# 1784|   	return 0;

Error: CPPCHECK_WARNING: [#def13]
libbpf-1.2.0-build/libbpf-1.2.0/src/hashmap.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CPPCHECK_WARNING (CWE-758): [#def14]
libbpf-1.2.0-build/libbpf-1.2.0/src/libbpf_internal.h:229: error[shiftTooManyBitsSigned]: Shifting signed 32-bit value by 31 bits is undefined behaviour
#  227|   static inline __u32 btf_type_info(int kind, int vlen, int kflag)
#  228|   {
#  229|-> 	return (kflag << 31) | (kind << 24) | vlen;
#  230|   }
#  231|   

Error: CPPCHECK_WARNING: [#def15]
libbpf-1.2.0-build/libbpf-1.2.0/src/libbpf_probes.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CPPCHECK_WARNING: [#def16]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: GCC_ANALYZER_WARNING (CWE-401): [#def17]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c: scope_hint: In function ‘add_new_sym’
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:285:15: warning[-Wanalyzer-malloc-leak]: leak of ‘realloc(*symtab.raw_data,  __real__ <unknown>)’
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c: scope_hint: In function ‘add_new_sym’
#  283|   
#  284|   	symtab->raw_data = syms;
#  285|-> 	symtab->sec_sz += sizeof(*sym);
#  286|   	symtab->shdr->sh_size += sizeof(*sym);
#  287|   	symtab->data->d_size += sizeof(*sym);

Error: CLANG_WARNING: [#def18]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1135:3: warning[core.NonNullParamChecker]: Null pointer passed to 1st parameter expecting 'nonnull'
# 1133|   
# 1134|   		/* pad dst section, if it's alignment forced size increase */
# 1135|-> 		memset(dst->raw_data + dst->sec_sz, 0, dst_align_sz - dst->sec_sz);
# 1136|   		/* now copy src data at a properly aligned offset */
# 1137|   		memcpy(dst->raw_data + dst_align_sz, src->data->d_buf, src->shdr->sh_size);

Error: CPPCHECK_WARNING (CWE-476): [#def19]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1502: error[ctunullpointer]: Null pointer dereference: extra_def
# 1500|   	const char *reason;
# 1501|   
# 1502|-> 	if (main_def->map_type != extra_def->map_type) {
# 1503|   		reason = "type";
# 1504|   		goto mismatch;

Error: CPPCHECK_WARNING (CWE-476): [#def20]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1502: error[ctunullpointer]: Null pointer dereference: main_def
# 1500|   	const char *reason;
# 1501|   
# 1502|-> 	if (main_def->map_type != extra_def->map_type) {
# 1503|   		reason = "type";
# 1504|   		goto mismatch;

Error: CLANG_WARNING: [#def21]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1502:6: warning[core.NullDereference]: Access to field 'map_type' results in a dereference of a null pointer (loaded from variable 'main_def')
# 1500|   	const char *reason;
# 1501|   
# 1502|-> 	if (main_def->map_type != extra_def->map_type) {
# 1503|   		reason = "type";
# 1504|   		goto mismatch;

Error: CLANG_WARNING: [#def22]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1944:23: warning[core.NullDereference]: Access to field 'sec_idx' results in a dereference of a null pointer (loaded from variable 'dst_sec')
# 1942|   		 */
# 1943|   		sym_update_type(dst_sym, sym_type);
# 1944|-> 		dst_sym->st_shndx = dst_sec->sec_idx;
# 1945|   		dst_sym->st_value = src_sec->dst_off + sym->st_value;
# 1946|   		dst_sym->st_size = sym->st_size;

Error: CLANG_WARNING: [#def23]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:1982:24: warning[core.NullDereference]: Access to field 'sec_sym_idx' results in a dereference of a null pointer (loaded from variable 'dst_sec')
# 1980|   
# 1981|   	if (sym_type == STT_SECTION && dst_sym) {
# 1982|-> 		dst_sec->sec_sym_idx = dst_sym_idx;
# 1983|   		dst_sym->st_value = 0;
# 1984|   	}

Error: GCC_ANALYZER_WARNING (CWE-476): [#def24]
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c: scope_hint: In function ‘linker_append_btf’
libbpf-1.2.0-build/libbpf-1.2.0/src/linker.c:2363:45: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
# 2361|   				name = btf__str_by_offset(linker->btf, t->name_off);
# 2362|   				glob_sym = find_glob_sym(linker, name);
# 2363|-> 				if (glob_sym->sec_id != dst_sec->id) {
# 2364|   					pr_warn("global '%s': section mismatch %d vs %d\n",
# 2365|   						name, glob_sym->sec_id, dst_sec->id);

Error: CPPCHECK_WARNING: [#def25]
libbpf-1.2.0-build/libbpf-1.2.0/src/netlink.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CLANG_WARNING: [#def26]
libbpf-1.2.0-build/libbpf-1.2.0/src/netlink.c:482:20: warning[core.uninitialized.Assign]: Assigned value is garbage or undefined
#  480|   	req.nh.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN);
#  481|   	req.nh.nlmsg_flags = NLM_F_REQUEST;
#  482|-> 	req.nh.nlmsg_type = id;
#  483|   	req.gnl.cmd = NETDEV_CMD_DEV_GET;
#  484|   	req.gnl.version = 2;

Error: CPPCHECK_WARNING: [#def27]
libbpf-1.2.0-build/libbpf-1.2.0/src/nlattr.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CPPCHECK_WARNING: [#def28]
libbpf-1.2.0-build/libbpf-1.2.0/src/relo_core.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CPPCHECK_WARNING: [#def29]
libbpf-1.2.0-build/libbpf-1.2.0/src/ringbuf.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Error: CLANG_WARNING: [#def30]
libbpf-1.2.0-build/libbpf-1.2.0/src/gen_loader.c:15: included_from: Included from here.
libbpf-1.2.0-build/libbpf-1.2.0/src/skel_internal.h:316:2: warning[deadcode.DeadStores]: Value stored to 'err' is never read
#  314|   	union bpf_attr attr;
#  315|   
#  316|-> 	err = map_fd = skel_map_create(BPF_MAP_TYPE_ARRAY, "__loader.map", 4, opts->data_sz, 1);
#  317|   	if (map_fd < 0) {
#  318|   		opts->errstr = "failed to create loader map";

Error: CLANG_WARNING: [#def31]
libbpf-1.2.0-build/libbpf-1.2.0/src/skel_internal.h:341:2: warning[deadcode.DeadStores]: Value stored to 'err' is never read
#  339|   	attr.log_buf = opts->ctx->log_buf;
#  340|   	attr.prog_flags = BPF_F_SLEEPABLE;
#  341|-> 	err = prog_fd = skel_sys_bpf(BPF_PROG_LOAD, &attr, prog_load_attr_sz);
#  342|   	if (prog_fd < 0) {
#  343|   		opts->errstr = "failed to load loader prog";

Error: CPPCHECK_WARNING: [#def32]
libbpf-1.2.0-build/libbpf-1.2.0/src/usdt.c: information[normalCheckLevelMaxBranches]: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches.

Scan Properties

analyzer-version-clang18.1.7
analyzer-version-cppcheck2.14.2
analyzer-version-gcc14.1.1
analyzer-version-gcc-analyzer14.1.1
analyzer-version-shellcheck0.10.0
enabled-pluginsclang, cppcheck, gcc, shellcheck
exit-code0
hostip-172-16-1-7.us-west-2.compute.internal
mock-configfedora-41-x86_64
project-namelibbpf-1.2.0-3.fc40
store-results-to/tmp/tmp79lrlmct/libbpf-1.2.0-3.fc40.tar.xz
time-created2024-07-03 14:30:56
time-finished2024-07-03 14:32:56
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-41-x86_64' '-t' 'cppcheck,gcc,clang,shellcheck' '-o' '/tmp/tmp79lrlmct/libbpf-1.2.0-3.fc40.tar.xz' '--gcc-analyze' '/tmp/tmp79lrlmct/libbpf-1.2.0-3.fc40.src.rpm'
tool-versioncsmock-3.5.3-1.el9