diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index f0a7bf72..08b16e5a 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -7405,7 +7405,8 @@ void PackLinuxElf64::unpack(OutputFile *fo) } } int boff = find_le32(peek_arr, sizeof(peek_arr), size); - if (boff < 0) { + if (boff < 0 + || sizeof(peek_arr) < (boff + sizeof(b_info))) { throwCantUnpack("b_info corrupted"); } bp = (b_info *)(void *)&peek_arr[boff];