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));