Commit 99fde4d0 authored by Sami Tolvanen's avatar Sami Tolvanen Committed by Alexei Starovoitov
Browse files

bpf, btf: Enforce destructor kfunc type with CFI



Ensure that registered destructor kfuncs have the same type
as btf_dtor_kfunc_t to avoid a kernel panic on systems with
CONFIG_CFI enabled.

Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
Acked-by: default avatarYonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20260110082548.113748-10-samitolvanen@google.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent ba7f1024
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -8846,6 +8846,13 @@ static int btf_check_dtor_kfuncs(struct btf *btf, const struct btf_id_dtor_kfunc
		 */
		if (!t || !btf_type_is_ptr(t))
			return -EINVAL;

		if (IS_ENABLED(CONFIG_CFI_CLANG)) {
			/* Ensure the destructor kfunc type matches btf_dtor_kfunc_t */
			t = btf_type_by_id(btf, t->type);
			if (!btf_type_is_void(t))
				return -EINVAL;
		}
	}
	return 0;
}