[PATCH] bpf: bpftool: Setting error code in do_loader()

nswon posted 1 patch 9 months, 1 week ago
There is a newer version of this series
tools/bpf/bpftool/prog.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] bpf: bpftool: Setting error code in do_loader()
Posted by nswon 9 months, 1 week ago
missing error code in do_loader()
bpf_object__open_file() failed, but return 0
This means the command's exit status code was successful, so make sure to return the correct error code.

Link: https://lore.kernel.org/bpf/d3b5b4b4-19bb-4619-b4dd-86c958c4a367@stanley.mountain/t/#u
Closes: https://github.com/libbpf/bpftool/issues/156
Signed-off-by: nswon <swnam0729@gmail.com>
---
 tools/bpf/bpftool/prog.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index e71be67f1d86..641802e308f4 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -1928,6 +1928,7 @@ static int do_loader(int argc, char **argv)
 
 	obj = bpf_object__open_file(file, &open_opts);
 	if (!obj) {
+		err = libbpf_get_error(obj);
 		p_err("failed to open object file");
 		goto err_close_obj;
 	}
-- 
2.39.3 (Apple Git-146)
Re: [PATCH] bpf: bpftool: Setting error code in do_loader()
Posted by Quentin Monnet 9 months, 1 week ago
2025-03-10 14:25 UTC+0900 ~ nswon <swnam0729@gmail.com>
> missing error code in do_loader()
> bpf_object__open_file() failed, but return 0
> This means the command's exit status code was successful, so make sure to return the correct error code.
> 
> Link: https://lore.kernel.org/bpf/d3b5b4b4-19bb-4619-b4dd-86c958c4a367@stanley.mountain/t/#u
> Closes: https://github.com/libbpf/bpftool/issues/156
> Signed-off-by: nswon <swnam0729@gmail.com>


Thanks for this!

Others may correct me if I'm wrong, but I think you should sign off with
your full name here (although it doesn't strictly have to be a full
name, the patch submission docs mention in should be a "known identity"
so I'm not sure whether a GitHub handle, for example, is acceptable).


> ---
>  tools/bpf/bpftool/prog.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
> index e71be67f1d86..641802e308f4 100644
> --- a/tools/bpf/bpftool/prog.c
> +++ b/tools/bpf/bpftool/prog.c
> @@ -1928,6 +1928,7 @@ static int do_loader(int argc, char **argv)
>  
>  	obj = bpf_object__open_file(file, &open_opts);
>  	if (!obj) {
> +		err = libbpf_get_error(obj);


This is the correct way to retrieve the error code, but given that
bpftool does nothing with this error code, could we instead simply
return -1 to remain consistent with the other locations where we call
bpf_object__open_file() in the tool, please?

Thanks,
Quentin
Re: [PATCH] bpf: bpftool: Setting error code in do_loader()
Posted by 남세원 9 months, 1 week ago
Ngomhla ka-Mso, Mas 10, 2025 ngo-22:28 Quentin Monnet <qmo@kernel.org> wabhala:
>
> 2025-03-10 14:25 UTC+0900 ~ nswon <swnam0729@gmail.com>
> > missing error code in do_loader()
> > bpf_object__open_file() failed, but return 0
> > This means the command's exit status code was successful, so make sure to return the correct error code.
> >
> > Link: https://lore.kernel.org/bpf/d3b5b4b4-19bb-4619-b4dd-86c958c4a367@stanley.mountain/t/#u
> > Closes: https://github.com/libbpf/bpftool/issues/156
> > Signed-off-by: nswon <swnam0729@gmail.com>
>
>
> Thanks for this!
>
> Others may correct me if I'm wrong, but I think you should sign off with
> your full name here (although it doesn't strictly have to be a full
> name, the patch submission docs mention in should be a "known identity"
> so I'm not sure whether a GitHub handle, for example, is acceptable).
>
>
> > ---
> >  tools/bpf/bpftool/prog.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
> > index e71be67f1d86..641802e308f4 100644
> > --- a/tools/bpf/bpftool/prog.c
> > +++ b/tools/bpf/bpftool/prog.c
> > @@ -1928,6 +1928,7 @@ static int do_loader(int argc, char **argv)
> >
> >       obj = bpf_object__open_file(file, &open_opts);
> >       if (!obj) {
> > +             err = libbpf_get_error(obj);
>
>
> This is the correct way to retrieve the error code, but given that
> bpftool does nothing with this error code, could we instead simply
> return -1 to remain consistent with the other locations where we call
> bpf_object__open_file() in the tool, please?
>
> Thanks,
> Quentin


Thanks for the review!
I'll submit a v2 patch soon with the signature renamed :)