From: Andrii Nakryiko Date: Mon, 25 Oct 2021 22:45:28 +0000 (-0700) Subject: libbpf: Fix off-by-one bug in bpf_core_apply_relo() X-Git-Tag: v5.16-rc1~159^2~2^2~29^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de5d0dcef602de39070c31c7e56c58249c56ba37;p=thirdparty%2Flinux.git libbpf: Fix off-by-one bug in bpf_core_apply_relo() Fix instruction index validity check which has off-by-one error. Fixes: 3ee4f5335511 ("libbpf: Split bpf_core_apply_relo() into bpf_program independent helper.") Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov Link: https://lore.kernel.org/bpf/20211025224531.1088894-2-andrii@kernel.org --- diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c index 604abe00785f8..e27a249d46fb9 100644 --- a/tools/lib/bpf/libbpf.c +++ b/tools/lib/bpf/libbpf.c @@ -5405,7 +5405,7 @@ static int bpf_core_apply_relo(struct bpf_program *prog, * relocated, so it's enough to just subtract in-section offset */ insn_idx = insn_idx - prog->sec_insn_off; - if (insn_idx > prog->insns_cnt) + if (insn_idx >= prog->insns_cnt) return -EINVAL; insn = &prog->insns[insn_idx];