mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 00:58:39 +02:00
bpf: Constify struct btf_kind_operations
struct btf_kind_operations are not modified in BTF. Constifying this structures moves some data to a read-only section, so increase overall security, especially when the structure holds some function pointers. On a x86_64, with allmodconfig: Before: ====== text data bss dec hex filename 184320 7091 548 191959 2edd7 kernel/bpf/btf.o After: ===== text data bss dec hex filename 184896 6515 548 191959 2edd7 kernel/bpf/btf.o Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/9192ab72b2e9c66aefd6520f359a20297186327f.1726417289.git.christophe.jaillet@wanadoo.fr Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
58dbb36930
commit
7bae563c0d
1 changed files with 9 additions and 9 deletions
|
|
@ -2808,7 +2808,7 @@ static void btf_ref_type_log(struct btf_verifier_env *env,
|
|||
btf_verifier_log(env, "type_id=%u", t->type);
|
||||
}
|
||||
|
||||
static struct btf_kind_operations modifier_ops = {
|
||||
static const struct btf_kind_operations modifier_ops = {
|
||||
.check_meta = btf_ref_type_check_meta,
|
||||
.resolve = btf_modifier_resolve,
|
||||
.check_member = btf_modifier_check_member,
|
||||
|
|
@ -2817,7 +2817,7 @@ static struct btf_kind_operations modifier_ops = {
|
|||
.show = btf_modifier_show,
|
||||
};
|
||||
|
||||
static struct btf_kind_operations ptr_ops = {
|
||||
static const struct btf_kind_operations ptr_ops = {
|
||||
.check_meta = btf_ref_type_check_meta,
|
||||
.resolve = btf_ptr_resolve,
|
||||
.check_member = btf_ptr_check_member,
|
||||
|
|
@ -2858,7 +2858,7 @@ static void btf_fwd_type_log(struct btf_verifier_env *env,
|
|||
btf_verifier_log(env, "%s", btf_type_kflag(t) ? "union" : "struct");
|
||||
}
|
||||
|
||||
static struct btf_kind_operations fwd_ops = {
|
||||
static const struct btf_kind_operations fwd_ops = {
|
||||
.check_meta = btf_fwd_check_meta,
|
||||
.resolve = btf_df_resolve,
|
||||
.check_member = btf_df_check_member,
|
||||
|
|
@ -3109,7 +3109,7 @@ static void btf_array_show(const struct btf *btf, const struct btf_type *t,
|
|||
__btf_array_show(btf, t, type_id, data, bits_offset, show);
|
||||
}
|
||||
|
||||
static struct btf_kind_operations array_ops = {
|
||||
static const struct btf_kind_operations array_ops = {
|
||||
.check_meta = btf_array_check_meta,
|
||||
.resolve = btf_array_resolve,
|
||||
.check_member = btf_array_check_member,
|
||||
|
|
@ -4185,7 +4185,7 @@ static void btf_struct_show(const struct btf *btf, const struct btf_type *t,
|
|||
__btf_struct_show(btf, t, type_id, data, bits_offset, show);
|
||||
}
|
||||
|
||||
static struct btf_kind_operations struct_ops = {
|
||||
static const struct btf_kind_operations struct_ops = {
|
||||
.check_meta = btf_struct_check_meta,
|
||||
.resolve = btf_struct_resolve,
|
||||
.check_member = btf_struct_check_member,
|
||||
|
|
@ -4353,7 +4353,7 @@ static void btf_enum_show(const struct btf *btf, const struct btf_type *t,
|
|||
btf_show_end_type(show);
|
||||
}
|
||||
|
||||
static struct btf_kind_operations enum_ops = {
|
||||
static const struct btf_kind_operations enum_ops = {
|
||||
.check_meta = btf_enum_check_meta,
|
||||
.resolve = btf_df_resolve,
|
||||
.check_member = btf_enum_check_member,
|
||||
|
|
@ -4456,7 +4456,7 @@ static void btf_enum64_show(const struct btf *btf, const struct btf_type *t,
|
|||
btf_show_end_type(show);
|
||||
}
|
||||
|
||||
static struct btf_kind_operations enum64_ops = {
|
||||
static const struct btf_kind_operations enum64_ops = {
|
||||
.check_meta = btf_enum64_check_meta,
|
||||
.resolve = btf_df_resolve,
|
||||
.check_member = btf_enum_check_member,
|
||||
|
|
@ -4534,7 +4534,7 @@ static void btf_func_proto_log(struct btf_verifier_env *env,
|
|||
btf_verifier_log(env, ")");
|
||||
}
|
||||
|
||||
static struct btf_kind_operations func_proto_ops = {
|
||||
static const struct btf_kind_operations func_proto_ops = {
|
||||
.check_meta = btf_func_proto_check_meta,
|
||||
.resolve = btf_df_resolve,
|
||||
/*
|
||||
|
|
@ -4592,7 +4592,7 @@ static int btf_func_resolve(struct btf_verifier_env *env,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct btf_kind_operations func_ops = {
|
||||
static const struct btf_kind_operations func_ops = {
|
||||
.check_meta = btf_func_check_meta,
|
||||
.resolve = btf_func_resolve,
|
||||
.check_member = btf_df_check_member,
|
||||
|
|
|
|||
Loading…
Reference in a new issue