diff --git a/src/libbpf.c b/src/libbpf.c index af7203fa06cd781e6efa8fdcd28d0dafb466cc8a..9a3f1131b983fba748f9502aa593a6e066e123b5 100644 --- a/src/libbpf.c +++ b/src/libbpf.c @@ -881,7 +881,7 @@ bpf_object__add_programs(struct bpf_object *obj, Elf_Data *sec_data, return -LIBBPF_ERRNO__FORMAT; } - if (sec_off + prog_sz > sec_sz) { + if (sec_off + prog_sz > sec_sz || sec_off + prog_sz < sec_off) { pr_warn("sec '%s': program at offset %zu crosses section boundary\n", sec_name, sec_off); return -LIBBPF_ERRNO__FORMAT;