diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 0c076804..e53e1f4c 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -1645,7 +1645,8 @@ tribool PackMachBase::canUnpack() unsigned const ncmds = mhdri.ncmds; int headway = (int)mhdri.sizeofcmds; - if (!ncmds || MAX_N_CMDS < ncmds || file_size < headway) { + if (!ncmds || MAX_N_CMDS < ncmds || file_size < headway + || headway < 4*4 ) { char msg[80]; snprintf(msg, sizeof(msg), "bad Mach_header ncmds=%d sizeofcmds=0x%x", ncmds, headway); throwCantUnpack(msg);