From 791fd9199eda140896710943278c6d1d3488ef71 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Wed, 5 Oct 2016 12:52:52 -0700 Subject: [PATCH] Preserve alignment in .text modified: p_mach.cpp --- src/p_mach.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index 74e5890c..0b3d38bb 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -716,8 +716,9 @@ void PackMachBase::pack4(OutputFile *fo, Filter &ft) // append PackHeader } Mach_section_command *const secptr = (Mach_section_command *)(1+ segptr); if (Mach_header::CPU_TYPE_I386 == my_cputype) { - segptr->vmaddr = segTEXT.vmaddr; - secptr->addr = segTEXT.vmaddr; + upx_uint64_t const delt2 = segTEXT.vmaddr - segptr->vmaddr; + segptr->vmaddr += delt2; + secptr->addr += delt2; } memcpy(&segTEXT, segptr, sizeof(segTEXT)); memcpy(&secTEXT, secptr, sizeof(secTEXT));