diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index 538129ed2418..94d43612d211 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -5871,6 +5871,7 @@ static int btf_check_all_metas(struct btf_verifier_env *env) struct btf *btf = env->btf; struct btf_header *hdr; void *cur, *end; + int err; hdr = &btf->hdr; cur = btf->nohdr_data + hdr->type_off; @@ -5885,7 +5886,10 @@ static int btf_check_all_metas(struct btf_verifier_env *env) if (meta_size < 0) return meta_size; - btf_add_type(env, t); + err = btf_add_type(env, t); + if (err) + return err; + cur += meta_size; env->log_type_id++; }