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 |
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 |
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 >
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 --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)
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(-)