Message ID | 20190529011426.1328736-3-andriin@fb.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf-next,1/9] libbpf: fix detection of corrupted BPF instructions section | expand |
On Tue, May 28, 2019 at 6:14 PM Andrii Nakryiko <andriin@fb.com> wrote: > > pr_warning ultimately may call into user-provided callback function, > which can clobber errno value, so we need to save it before that. > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> Acked-by: Song Liu <songliubraving@fb.com> > --- > tools/lib/bpf/libbpf.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c > index 05a73223e524..7b80b9ae8a1f 100644 > --- a/tools/lib/bpf/libbpf.c > +++ b/tools/lib/bpf/libbpf.c > @@ -565,12 +565,12 @@ static int bpf_object__elf_init(struct bpf_object *obj) > } else { > obj->efile.fd = open(obj->path, O_RDONLY); > if (obj->efile.fd < 0) { > - char errmsg[STRERR_BUFSIZE]; > - char *cp = libbpf_strerror_r(errno, errmsg, > - sizeof(errmsg)); > + char errmsg[STRERR_BUFSIZE], *cp; > > + err = -errno; > + cp = libbpf_strerror_r(err, errmsg, sizeof(errmsg)); > pr_warning("failed to open %s: %s\n", obj->path, cp); > - return -errno; > + return err; > } > > obj->efile.elf = elf_begin(obj->efile.fd, > -- > 2.17.1 >
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 05a73223e524..7b80b9ae8a1f 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -565,12 +565,12 @@ static int bpf_object__elf_init(struct bpf_object *obj) } else { obj->efile.fd = open(obj->path, O_RDONLY); if (obj->efile.fd < 0) { - char errmsg[STRERR_BUFSIZE]; - char *cp = libbpf_strerror_r(errno, errmsg, - sizeof(errmsg)); + char errmsg[STRERR_BUFSIZE], *cp; + err = -errno; + cp = libbpf_strerror_r(err, errmsg, sizeof(errmsg)); pr_warning("failed to open %s: %s\n", obj->path, cp); - return -errno; + return err; } obj->efile.elf = elf_begin(obj->efile.fd,
pr_warning ultimately may call into user-provided callback function, which can clobber errno value, so we need to save it before that. Signed-off-by: Andrii Nakryiko <andriin@fb.com> --- tools/lib/bpf/libbpf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)