[PATCH bpf v1] libbpf: fix build failure from uninitialized variable warning

Subsystems: bpf [general] (safe dynamic programs and tools), bpf [library] (libbpf), the rest

STALE2183d LANDED

Landed in mainline as 3168c158ad35 on 2020-08-31.

3 messages, 2 authors, 2020-09-02 · open the first message on its own page

[PATCH bpf v1] libbpf: fix build failure from uninitialized variable warning

From: Tony Ambardar <hidden>
Date: 2020-08-31 00:03:26

While compiling libbpf, some GCC versions (at least 8.4.0) have difficulty
determining control flow and a emit warning for potentially uninitialized
usage of 'map', which results in a build error if using "-Werror":

In file included from libbpf.c:56:
libbpf.c: In function '__bpf_object__open':
libbpf_internal.h:59:2: warning: 'map' may be used uninitialized in this function [-Wmaybe-uninitialized]
  libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
  ^~~~~~~~~~~~
libbpf.c:5032:18: note: 'map' was declared here
  struct bpf_map *map, *targ_map;
                  ^~~

The warning/error is false based on code inspection, so silence it with a
NULL initialization.

Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support")
Ref: 063e68813391 ("libbpf: Fix false uninitialized variable warning")

Signed-off-by: Tony Ambardar <redacted>
---
 tools/lib/bpf/libbpf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index b688aadf09c5..46d727b45c81 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -5804,8 +5804,8 @@ static int bpf_object__collect_map_relos(struct bpf_object *obj,
 	int i, j, nrels, new_sz;
 	const struct btf_var_secinfo *vi = NULL;
 	const struct btf_type *sec, *var, *def;
+	struct bpf_map *map = NULL, *targ_map;
 	const struct btf_member *member;
-	struct bpf_map *map, *targ_map;
 	const char *name, *mname;
 	Elf_Data *symbols;
 	unsigned int moff;
-- 
2.25.1

Re: [PATCH bpf v1] libbpf: fix build failure from uninitialized variable warning

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2020-08-31 14:59:36

On 8/31/20 2:03 AM, Tony Ambardar wrote:
While compiling libbpf, some GCC versions (at least 8.4.0) have difficulty
determining control flow and a emit warning for potentially uninitialized
usage of 'map', which results in a build error if using "-Werror":

In file included from libbpf.c:56:
libbpf.c: In function '__bpf_object__open':
libbpf_internal.h:59:2: warning: 'map' may be used uninitialized in this function [-Wmaybe-uninitialized]
   libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
   ^~~~~~~~~~~~
libbpf.c:5032:18: note: 'map' was declared here
   struct bpf_map *map, *targ_map;
                   ^~~

The warning/error is false based on code inspection, so silence it with a
NULL initialization.

Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support")
Ref: 063e68813391 ("libbpf: Fix false uninitialized variable warning")

Signed-off-by: Tony Ambardar <redacted>
Applied, thanks!

Re: [PATCH bpf v1] libbpf: fix build failure from uninitialized variable warning

From: Tony Ambardar <hidden>
Date: 2020-09-02 07:40:10

On Mon, 31 Aug 2020 at 07:59, Daniel Borkmann [off-list ref] wrote:
On 8/31/20 2:03 AM, Tony Ambardar wrote:
quoted
While compiling libbpf, some GCC versions (at least 8.4.0) have difficulty
determining control flow and a emit warning for potentially uninitialized
usage of 'map', which results in a build error if using "-Werror":

In file included from libbpf.c:56:
libbpf.c: In function '__bpf_object__open':
libbpf_internal.h:59:2: warning: 'map' may be used uninitialized in this function [-Wmaybe-uninitialized]
   libbpf_print(level, "libbpf: " fmt, ##__VA_ARGS__); \
   ^~~~~~~~~~~~
libbpf.c:5032:18: note: 'map' was declared here
   struct bpf_map *map, *targ_map;
                   ^~~

The warning/error is false based on code inspection, so silence it with a
NULL initialization.

Fixes: 646f02ffdd49 ("libbpf: Add BTF-defined map-in-map support")
Ref: 063e68813391 ("libbpf: Fix false uninitialized variable warning")

Signed-off-by: Tony Ambardar <redacted>
Applied, thanks!
Thanks, Daniel. I forgot to ask/confirm whether this will get applied
to the 5.8.x stable branch, since it was first encountered there.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help