diff --git a/src/libbpf.c b/src/libbpf.c index d7e730ba0b62456f10e29aa6b0c47c72fee8c5a1..a5ee6827b06b3eabd5503bce29c0bc0e3ca314a7 100644 --- a/src/libbpf.c +++ b/src/libbpf.c @@ -882,7 +882,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;