diff --git a/src/p_lx_exc.cpp b/src/p_lx_exc.cpp index 2b3ad3a9..c0fab3bb 100644 --- a/src/p_lx_exc.cpp +++ b/src/p_lx_exc.cpp @@ -601,11 +601,11 @@ void PackLinuxI386::patchLoaderChecksum() // checksum for loader + p_info lp->l_checksum = 0; lp->l_magic = UPX_ELF_MAGIC; - lp->l_lsize = (unsigned short) lsize; + set_te16(&lp->l_lsize, (unsigned short) lsize); lp->l_version = (unsigned char) ph.version; lp->l_format = (unsigned char) ph.format; // INFO: lp->l_checksum is currently unused - lp->l_checksum = upx_adler32(ptr, lsize); + set_te32(&lp->l_checksum, upx_adler32(ptr, lsize)); } diff --git a/src/p_mach.cpp b/src/p_mach.cpp index f31b5384..1d5871f8 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -429,11 +429,11 @@ void PackMachBase::patchLoaderChecksum() // checksum for loader; also some PackHeader info lp->l_checksum = 0; lp->l_magic = UPX_MAGIC_LE32; // LE32 always - lp->l_lsize = (unsigned short) lsize; + set_te16(&lp->l_lsize, (unsigned short) lsize); lp->l_version = (unsigned char) ph.version; lp->l_format = (unsigned char) ph.format; // INFO: lp->l_checksum is currently unused - lp->l_checksum = upx_adler32(ptr, lsize); + set_te32(&lp->l_checksum, upx_adler32(ptr, lsize)); } template