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-clang | 18.1.7 |
| analyzer-version-cppcheck | 2.14.2 |
| analyzer-version-gcc | 14.1.1 |
| analyzer-version-gcc-analyzer | 14.1.1 |
| analyzer-version-shellcheck | 0.10.0 |
| enabled-plugins | clang, cppcheck, gcc, shellcheck |
| exit-code | 0 |
| host | ip-172-16-1-7.us-west-2.compute.internal |
| mock-config | fedora-41-x86_64 |
| project-name | libbpf-1.2.0-3.fc40 |
| store-results-to | /tmp/tmp79lrlmct/libbpf-1.2.0-3.fc40.tar.xz |
| time-created | 2024-07-03 14:30:56 |
| time-finished | 2024-07-03 14:32:56 |
| tool | csmock |
| 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-version | csmock-3.5.3-1.el9 |