diff --git a/src/p_mach.cpp b/src/p_mach.cpp index e3e5903f..c8c7c83e 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -861,6 +861,8 @@ unsigned PackMachBase::find_SEGMENT_gap( } unsigned const hi = msegcmd[k].fileoff + msegcmd[k].filesize; unsigned lo = ph.u_file_size; + if (lo < hi) + throwCantPack("bad input: LC_SEGMENT beyond end-of-file"); unsigned j = k; for (;;) { // circular search, optimize for adjacent ascending ++j;