diff mbox series

[bpf] libbpf: silence uninitialized warning/error in btf_dump_dump_type_data

Message ID 1638180040-8037-1-git-send-email-alan.maguire@oracle.com (mailing list archive)
State Accepted
Commit 43174f0d4597325cb91f1f1f55263eb6e6101036
Delegated to: BPF
Headers show
Series [bpf] libbpf: silence uninitialized warning/error in btf_dump_dump_type_data | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for bpf
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers success CCed 11 of 11 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes fail Problems with Fixes tag: 1
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
bpf/vmtest-bpf fail VM_Test
bpf/vmtest-bpf-PR fail PR summary

Commit Message

Alan Maguire Nov. 29, 2021, 10 a.m. UTC
When compiling libbpf with gcc 4.8.5, we see:

  CC       staticobjs/btf_dump.o
btf_dump.c: In function ‘btf_dump_dump_type_data.isra.24’:
btf_dump.c:2296:5: error: ‘err’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  if (err < 0)
     ^
cc1: all warnings being treated as errors
make: *** [staticobjs/btf_dump.o] Error 1

While gcc 4.8.5 is too old to build the upstream kernel, it's possible it
could be used to build standalone libbpf which suffers from the same problem.
Silence the error by initializing 'err' to 0.  The warning/error seems to be
a false positive since err is set early in the function.  Regardless we
shouldn't prevent libbpf from building for this.

Fixes: 920d16af9b42 ("libbpf: BTF dumper support for typed data")

Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
---
 tools/lib/bpf/btf_dump.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrii Nakryiko Nov. 29, 2021, 5:39 p.m. UTC | #1
On Mon, Nov 29, 2021 at 2:01 AM Alan Maguire <alan.maguire@oracle.com> wrote:
>
> When compiling libbpf with gcc 4.8.5, we see:
>
>   CC       staticobjs/btf_dump.o
> btf_dump.c: In function ‘btf_dump_dump_type_data.isra.24’:
> btf_dump.c:2296:5: error: ‘err’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   if (err < 0)
>      ^
> cc1: all warnings being treated as errors
> make: *** [staticobjs/btf_dump.o] Error 1
>
> While gcc 4.8.5 is too old to build the upstream kernel, it's possible it
> could be used to build standalone libbpf which suffers from the same problem.
> Silence the error by initializing 'err' to 0.  The warning/error seems to be
> a false positive since err is set early in the function.  Regardless we
> shouldn't prevent libbpf from building for this.
>
> Fixes: 920d16af9b42 ("libbpf: BTF dumper support for typed data")
>
> Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
> ---

Arnaldo also complained about this.

Applied to bpf-next, I don't think it needs to be in the bpf tree. Thanks.


>  tools/lib/bpf/btf_dump.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
> index 17db62b..5cae716 100644
> --- a/tools/lib/bpf/btf_dump.c
> +++ b/tools/lib/bpf/btf_dump.c
> @@ -2194,7 +2194,7 @@ static int btf_dump_dump_type_data(struct btf_dump *d,
>                                    __u8 bits_offset,
>                                    __u8 bit_sz)
>  {
> -       int size, err;
> +       int size, err = 0;
>
>         size = btf_dump_type_data_check_overflow(d, t, id, data, bits_offset);
>         if (size < 0)
> --
> 1.8.3.1
>
patchwork-bot+netdevbpf@kernel.org Nov. 29, 2021, 5:40 p.m. UTC | #2
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Mon, 29 Nov 2021 10:00:40 +0000 you wrote:
> When compiling libbpf with gcc 4.8.5, we see:
> 
>   CC       staticobjs/btf_dump.o
> btf_dump.c: In function ‘btf_dump_dump_type_data.isra.24’:
> btf_dump.c:2296:5: error: ‘err’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
>   if (err < 0)
>      ^
> cc1: all warnings being treated as errors
> make: *** [staticobjs/btf_dump.o] Error 1
> 
> [...]

Here is the summary with links:
  - [bpf] libbpf: silence uninitialized warning/error in btf_dump_dump_type_data
    https://git.kernel.org/bpf/bpf-next/c/43174f0d4597

You are awesome, thank you!
diff mbox series

Patch

diff --git a/tools/lib/bpf/btf_dump.c b/tools/lib/bpf/btf_dump.c
index 17db62b..5cae716 100644
--- a/tools/lib/bpf/btf_dump.c
+++ b/tools/lib/bpf/btf_dump.c
@@ -2194,7 +2194,7 @@  static int btf_dump_dump_type_data(struct btf_dump *d,
 				   __u8 bits_offset,
 				   __u8 bit_sz)
 {
-	int size, err;
+	int size, err = 0;
 
 	size = btf_dump_type_data_check_overflow(d, t, id, data, bits_offset);
 	if (size < 0)