diff --git a/src/p_mach.cpp b/src/p_mach.cpp index d672d785..8f62a3e5 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -1552,6 +1552,9 @@ int PackMachBase::canUnpack() if (2048 < headway) { infoWarning("Mach_header.sizeofcmds(%d) > 2048", headway); } + if(!headway){ + throwCantPack("Mach_header.sizeofcmds == 0"); + } rawmseg_buf.alloc(mhdri.sizeofcmds); rawmseg = (Mach_segment_command *)rawmseg_buf.getVoidPtr(); fi->readx(rawmseg, mhdri.sizeofcmds);