summaryrefslogtreecommitdiff
path: root/tools/lib
diff options
context:
space:
mode:
authorKP Singh <kpsingh@kernel.org>2021-03-19 22:21:17 +0300
committerAndrii Nakryiko <andrii@kernel.org>2021-03-20 00:03:39 +0300
commitea24b19562fe5f72c78319dbb347b701818956d9 (patch)
treec39ed23a8cfb3e93c7bc0d51c717512450bb9e51 /tools/lib
parent6d8b271682e2e0ff6a793c76803a5506b5535a5a (diff)
downloadlinux-ea24b19562fe5f72c78319dbb347b701818956d9.tar.xz
libbpf: Add explicit padding to btf_dump_emit_type_decl_opts
Similar to https://lore.kernel.org/bpf/20210313210920.1959628-2-andrii@kernel.org/ When DECLARE_LIBBPF_OPTS is used with inline field initialization, e.g: DECLARE_LIBBPF_OPTS(btf_dump_emit_type_decl_opts, opts, .field_name = var_ident, .indent_level = 2, .strip_mods = strip_mods, ); and compiled in debug mode, the compiler generates code which leaves the padding uninitialized and triggers errors within libbpf APIs which require strict zero initialization of OPTS structs. Adding anonymous padding field fixes the issue. Fixes: 9f81654eebe8 ("libbpf: Expose BTF-to-C type declaration emitting API") Suggested-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: KP Singh <kpsingh@kernel.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20210319192117.2310658-1-kpsingh@kernel.org
Diffstat (limited to 'tools/lib')
-rw-r--r--tools/lib/bpf/btf.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/lib/bpf/btf.h b/tools/lib/bpf/btf.h
index 3b0b17ba94a1..b54f1c3ebd57 100644
--- a/tools/lib/bpf/btf.h
+++ b/tools/lib/bpf/btf.h
@@ -176,6 +176,7 @@ struct btf_dump_emit_type_decl_opts {
int indent_level;
/* strip all the const/volatile/restrict mods */
bool strip_mods;
+ size_t :0;
};
#define btf_dump_emit_type_decl_opts__last_field strip_mods