bpf: bpftool: Setting error code in do_loader()
authorSewon Nam <swnam0729@gmail.com>
Tue, 11 Mar 2025 03:12:37 +0000 (12:12 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:59:16 +0000 (07:59 +0200)
[ Upstream commit 02a4694107b4c830d4bd6d194e98b3ac0bc86f29 ]

We are missing setting error code in do_loader() when
bpf_object__open_file() fails. This means the command's exit status code
will be successful, even though the operation failed. So make sure to
return the correct error code. To maintain consistency with other
locations where bpf_object__open_file() is called, return -1.

  [0] Closes: https://github.com/libbpf/bpftool/issues/156

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Sewon Nam <swnam0729@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Tested-by: Quentin Monnet <qmo@kernel.org>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/bpf/d3b5b4b4-19bb-4619-b4dd-86c958c4a367@stanley.mountain/t/#u
Link: https://lore.kernel.org/bpf/20250311031238.14865-1-swnam0729@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/bpf/bpftool/prog.c

index e71be67f1d86582e2224da7ba0030379f53110d8..52ffb74ae4e89aff52cb3d7007c64d96e99770b1 100644 (file)
@@ -1928,6 +1928,7 @@ static int do_loader(int argc, char **argv)
 
        obj = bpf_object__open_file(file, &open_opts);
        if (!obj) {
+               err = -1;
                p_err("failed to open object file");
                goto err_close_obj;
        }