diff mbox series

[bpf-next] libbf: fix uninitialized pointer at btf__parse_raw()

Message ID 20200805223359.32109-1-danieltimlee@gmail.com
State Accepted
Delegated to: BPF Maintainers
Headers show
Series [bpf-next] libbf: fix uninitialized pointer at btf__parse_raw() | expand

Commit Message

Daniel T. Lee Aug. 5, 2020, 10:33 p.m. UTC
Recently, from commit 94a1fedd63ed ("libbpf: Add btf__parse_raw() and
generic btf__parse() APIs"), new API has been added to libbpf that
allows to parse BTF from raw data file (btf__parse_raw()).

The commit derives build failure of samples/bpf due to improper access
of uninitialized pointer at btf_parse_raw().

    btf.c: In function btf__parse_raw:
    btf.c:625:28: error: btf may be used uninitialized in this function
      625 |  return err ? ERR_PTR(err) : btf;
          |         ~~~~~~~~~~~~~~~~~~~^~~~~

This commit fixes the build failure of samples/bpf by adding code of
initializing btf pointer as NULL.

Fixes: 94a1fedd63ed ("libbpf: Add btf__parse_raw() and generic btf__parse() APIs")
Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
---
 tools/lib/bpf/btf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

John Fastabend Aug. 6, 2020, 6:21 a.m. UTC | #1
Daniel T. Lee wrote:
> Recently, from commit 94a1fedd63ed ("libbpf: Add btf__parse_raw() and
> generic btf__parse() APIs"), new API has been added to libbpf that
> allows to parse BTF from raw data file (btf__parse_raw()).
> 
> The commit derives build failure of samples/bpf due to improper access
> of uninitialized pointer at btf_parse_raw().
> 
>     btf.c: In function btf__parse_raw:
>     btf.c:625:28: error: btf may be used uninitialized in this function
>       625 |  return err ? ERR_PTR(err) : btf;
>           |         ~~~~~~~~~~~~~~~~~~~^~~~~
> 
> This commit fixes the build failure of samples/bpf by adding code of
> initializing btf pointer as NULL.
> 
> Fixes: 94a1fedd63ed ("libbpf: Add btf__parse_raw() and generic btf__parse() APIs")
> Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
> ---

Unless errno is zero this should be ok in practice, but I guess compiler
wont know that.

Acked-by: John Fastabend <john.fastabend@gmail.com>
Alexei Starovoitov Aug. 6, 2020, 11:48 p.m. UTC | #2
On Wed, Aug 5, 2020 at 11:22 PM John Fastabend <john.fastabend@gmail.com> wrote:
>
> Daniel T. Lee wrote:
> > Recently, from commit 94a1fedd63ed ("libbpf: Add btf__parse_raw() and
> > generic btf__parse() APIs"), new API has been added to libbpf that
> > allows to parse BTF from raw data file (btf__parse_raw()).
> >
> > The commit derives build failure of samples/bpf due to improper access
> > of uninitialized pointer at btf_parse_raw().
> >
> >     btf.c: In function btf__parse_raw:
> >     btf.c:625:28: error: btf may be used uninitialized in this function
> >       625 |  return err ? ERR_PTR(err) : btf;
> >           |         ~~~~~~~~~~~~~~~~~~~^~~~~
> >
> > This commit fixes the build failure of samples/bpf by adding code of
> > initializing btf pointer as NULL.
> >
> > Fixes: 94a1fedd63ed ("libbpf: Add btf__parse_raw() and generic btf__parse() APIs")
> > Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
> > ---
>
> Unless errno is zero this should be ok in practice, but I guess compiler
> wont know that.
>
> Acked-by: John Fastabend <john.fastabend@gmail.com>

Applied. Thanks
diff mbox series

Patch

diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index 856b09a04563..4843e44916f7 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -564,8 +564,8 @@  struct btf *btf__parse_elf(const char *path, struct btf_ext **btf_ext)
 
 struct btf *btf__parse_raw(const char *path)
 {
+	struct btf *btf = NULL;
 	void *data = NULL;
-	struct btf *btf;
 	FILE *f = NULL;
 	__u16 magic;
 	int err = 0;