From bb1f9cdecd02130e468b9bed680a9bb6122f8a0c Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 22 Sep 2018 12:11:51 -0700 Subject: [PATCH] Propagate pagezero_vmsize; fix overlay_offset. modified: p_mach.cpp --- src/p_mach.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 55efdde2..021f3b09 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -558,7 +558,7 @@ template void PackMachBase::pack4(OutputFile *fo, Filter &ft) // append PackHeader { // offset of p_info in compressed file - overlay_offset = secTEXT.addr + sizeof(linfo); + overlay_offset = secTEXT.offset + sizeof(linfo); super::pack4(fo, ft); if (Mach_header::MH_EXECUTE == my_filetype) { @@ -612,6 +612,9 @@ void PackMachBase::pack4(OutputFile *fo, Filter &ft) // append PackHeader case Mach_command::LC_SEGMENT: // fall through case Mach_command::LC_SEGMENT_64: { Mach_segment_command *const segptr = (Mach_segment_command *)lcp; + if (!strcmp("__PAGEZERO", segptr->segname)) { + segptr->vmsize = pagezero_vmsize; + } if (!strcmp("__TEXT", segptr->segname)) { sectxt = (Mach_section_command *)(1+ segptr); txt_addr = sectxt->addr;