linux/tools/bpf/bpftool
Yonghong Song f97b8b9bd6 bpftool: Fix a bug in subskeleton code generation
Compiled with clang by adding LLVM=1 both kernel and selftests/bpf
build, I hit the following compilation error:

In file included from /.../tools/testing/selftests/bpf/prog_tests/subskeleton.c:6:
  ./test_subskeleton_lib.subskel.h:168:6: error: variable 'err' is used uninitialized whenever
      'if' condition is true [-Werror,-Wsometimes-uninitialized]
          if (!s->progs)
              ^~~~~~~~~
  ./test_subskeleton_lib.subskel.h:181:11: note: uninitialized use occurs here
          errno = -err;
                   ^~~
  ./test_subskeleton_lib.subskel.h:168:2: note: remove the 'if' if its condition is always false
          if (!s->progs)
          ^~~~~~~~~~~~~~

The compilation error is triggered by the following code
        ...
        int err;

        obj = (struct test_subskeleton_lib *)calloc(1, sizeof(*obj));
        if (!obj) {
                errno = ENOMEM;
                goto err;
        }
        ...

  err:
        test_subskeleton_lib__destroy(obj);
        errno = -err;
        ...
in test_subskeleton_lib__open(). The 'err' is not initialized, yet it
is used in 'errno = -err' later.

The fix is to remove 'errno = -err' since errno has been set properly
in all incoming branches.

Fixes: 00389c58ff ("bpftool: Add support for subskeletons")
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20220320032009.3106133-1-yhs@fb.com
2022-03-21 14:46:10 -07:00
..
bash-completion bpftool: Add support for subskeletons 2022-03-17 23:12:39 -07:00
Documentation bpftool: Add support for subskeletons 2022-03-17 23:12:39 -07:00
skeleton bpftool: Add bpf_cookie to link output 2022-03-15 15:07:27 -07:00
.gitignore bpftool: Fix SPDX tag for Makefiles and .gitignore 2021-11-10 09:00:52 -08:00
btf_dumper.c bpftool: Use bpf_obj_get_info_by_fd directly 2021-11-03 11:25:32 -07:00
btf.c bpftool: Fix error check when calling hashmap__new() 2022-01-12 17:01:36 -08:00
cfg.c tools, bpftool: Poison and replace kernel integer typedefs 2020-05-11 21:20:46 +02:00
cfg.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00
cgroup.c bpftool: Adding support for BTF program names 2022-01-19 10:04:41 -08:00
common.c bpftool: Add BPF_TRACE_KPROBE_MULTI to attach type names table 2022-03-18 17:56:00 +01:00
feature.c bpftool: Restore support for BPF offload-enabled feature probing 2022-03-10 16:09:47 +01:00
gen.c bpftool: Fix a bug in subskeleton code generation 2022-03-21 14:46:10 -07:00
iter.c bpftool: Use libbpf_get_error() to check error 2021-11-14 18:38:13 -08:00
jit_disasm.c bpftool: Properly close va_list 'ap' by va_end() on error 2021-07-06 09:19:23 +02:00
json_writer.c bpftool: Support dumping metadata 2020-09-15 18:28:27 -07:00
json_writer.h bpftool: Support dumping metadata 2020-09-15 18:28:27 -07:00
link.c bpftool: Fix error check when calling hashmap__new() 2022-01-12 17:01:36 -08:00
main.c bpftool: Update versioning scheme, align on libbpf's version number 2022-02-10 21:09:47 -08:00
main.h bpftool: Add bpf_cookie to link output 2022-03-15 15:07:27 -07:00
Makefile bpftool: Remove redundant slashes 2022-02-28 16:06:21 +01:00
map_perf_ring.c bpftool: Update btf_dump__new() and perf_buffer__new_raw() calls 2021-11-11 16:54:06 -08:00
map.c bpftool: Fix print error when show bpf map 2022-03-21 14:58:06 +01:00
net.c bpftool: use new API for attaching XDP program 2022-01-20 21:22:02 -08:00
netlink_dumper.c bpftool: Use consistent include paths for libbpf 2020-01-20 16:37:45 -08:00
netlink_dumper.h tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
perf.c tools: bpftool: Update and synchronise option list in doc and help msg 2021-07-30 15:40:27 -07:00
pids.c bpftool: Add bpf_cookie to link output 2022-03-15 15:07:27 -07:00
prog.c bpftool: Ensure bytes_memlock json output is correct 2022-03-11 00:06:11 +01:00
struct_ops.c bpftool: Stop using bpf_map__def() API 2022-01-12 17:01:38 -08:00
tracelog.c tools: bpftool: add an option to prevent auto-mount of bpffs, tracefs 2018-12-18 14:47:17 +01:00
xlated_dumper.c bpftool: Remove usage of reallocarray() 2022-02-23 13:55:01 -08:00
xlated_dumper.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00