From: Yuntao Wang Date: Sun, 20 Mar 2022 07:52:40 +0000 (+0800) Subject: bpf: Simplify check in btf_parse_hdr() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=583669ab3aed29994e50bde6c66b52d44e1bdb73;p=linux.git bpf: Simplify check in btf_parse_hdr() Replace offsetof(hdr_len) + sizeof(hdr_len) with offsetofend(hdr_len) to simplify the check for correctness of btf_data_size in btf_parse_hdr() Signed-off-by: Yuntao Wang Signed-off-by: Daniel Borkmann Link: https://lore.kernel.org/bpf/20220320075240.1001728-1-ytcoode@gmail.com --- diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index ce212bf39b2b0..24788ce564a08 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -4482,8 +4482,7 @@ static int btf_parse_hdr(struct btf_verifier_env *env) btf = env->btf; btf_data_size = btf->data_size; - if (btf_data_size < - offsetof(struct btf_header, hdr_len) + sizeof(hdr->hdr_len)) { + if (btf_data_size < offsetofend(struct btf_header, hdr_len)) { btf_verifier_log(env, "hdr_len not found"); return -EINVAL; }