mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
Propagate pagezero_vmsize; fix overlay_offset.
modified: p_mach.cpp
This commit is contained in:
parent
b259b0ca28
commit
bb1f9cdecd
|
@ -558,7 +558,7 @@ template <class T>
|
|||
void PackMachBase<T>::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<T>::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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user