mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
merge
This commit is contained in:
commit
3cb61402c2
|
@ -175,8 +175,8 @@ void PackLinuxElf::pack3(OutputFile *fo, Filter &ft)
|
||||||
unsigned disp;
|
unsigned disp;
|
||||||
unsigned const zero = 0;
|
unsigned const zero = 0;
|
||||||
unsigned len = fo->getBytesWritten();
|
unsigned len = fo->getBytesWritten();
|
||||||
fo->write(&zero, 3& -len); // ALIGN_UP 0 mod 4
|
fo->write(&zero, 3& (0u-len)); // ALIGN_UP 0 mod 4
|
||||||
len += (3& -len); // 0 mod 4
|
len += (3& (0u-len)); // 0 mod 4
|
||||||
|
|
||||||
unsigned const t = 4 ^ (4 & len) ^ ((!!xct_off)<<2); // 0 or 4
|
unsigned const t = 4 ^ (4 & len) ^ ((!!xct_off)<<2); // 0 or 4
|
||||||
fo->write(&zero, t);
|
fo->write(&zero, t);
|
||||||
|
@ -2266,8 +2266,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft)
|
||||||
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
||||||
unsigned const zero = 0;
|
unsigned const zero = 0;
|
||||||
unsigned len = fo->getBytesWritten();
|
unsigned len = fo->getBytesWritten();
|
||||||
fo->write(&zero, 3& -len); // align to 0 mod 4
|
fo->write(&zero, 3& (0u-len)); // align to 0 mod 4
|
||||||
len += 3& -len;
|
len += 3& (0u-len);
|
||||||
set_te32(&elfout.phdr[0].p_filesz, len);
|
set_te32(&elfout.phdr[0].p_filesz, len);
|
||||||
super::pack4(fo, ft); // write PackHeader and overlay_offset
|
super::pack4(fo, ft); // write PackHeader and overlay_offset
|
||||||
|
|
||||||
|
@ -2329,8 +2329,8 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft)
|
||||||
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
overlay_offset = sz_elf_hdrs + sizeof(linfo);
|
||||||
unsigned const zero = 0;
|
unsigned const zero = 0;
|
||||||
unsigned len = fo->getBytesWritten();
|
unsigned len = fo->getBytesWritten();
|
||||||
fo->write(&zero, 3& -len); // align to 0 mod 4
|
fo->write(&zero, 3& (0u-len)); // align to 0 mod 4
|
||||||
len += 3& -len;
|
len += 3& (0u-len);
|
||||||
set_te64(&elfout.phdr[0].p_filesz, len);
|
set_te64(&elfout.phdr[0].p_filesz, len);
|
||||||
super::pack4(fo, ft); // write PackHeader and overlay_offset
|
super::pack4(fo, ft); // write PackHeader and overlay_offset
|
||||||
|
|
||||||
|
|
|
@ -273,7 +273,7 @@ void PackW32Pe::processTls(Reloc *rel,const Interval *iv,unsigned newaddr) // pa
|
||||||
// add new relocation entries
|
// add new relocation entries
|
||||||
unsigned ic;
|
unsigned ic;
|
||||||
//NEW: if TLS callbacks are used, relocate the VA of the callback chain, too - Stefan Widmann
|
//NEW: if TLS callbacks are used, relocate the VA of the callback chain, too - Stefan Widmann
|
||||||
for (ic = 0; ic < (use_tls_callbacks ? 16 : 12); ic += 4)
|
for (ic = 0; ic < (use_tls_callbacks ? 16u : 12u); ic += 4)
|
||||||
rel->add(newaddr + ic,3);
|
rel->add(newaddr + ic,3);
|
||||||
|
|
||||||
tls * const tlsp = (tls*) otls;
|
tls * const tlsp = (tls*) otls;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user