Skip to content
Snippets Groups Projects
Commit 454fb207 authored by KP Singh's avatar KP Singh Committed by Greg Kroah-Hartman
Browse files

libbpf: Add explicit padding to btf_dump_emit_type_decl_opts

[ Upstream commit ea24b195 ]

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: 9f81654e ("libbpf: Expose BTF-to-C type declaration emitting API")
Suggested-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarKP Singh <kpsingh@kernel.org>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210319192117.2310658-1-kpsingh@kernel.org


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 87520507
No related branches found
No related tags found
No related merge requests found
...@@ -164,6 +164,7 @@ struct btf_dump_emit_type_decl_opts { ...@@ -164,6 +164,7 @@ struct btf_dump_emit_type_decl_opts {
int indent_level; int indent_level;
/* strip all the const/volatile/restrict mods */ /* strip all the const/volatile/restrict mods */
bool strip_mods; bool strip_mods;
size_t :0;
}; };
#define btf_dump_emit_type_decl_opts__last_field strip_mods #define btf_dump_emit_type_decl_opts__last_field strip_mods
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment