diff --git a/.hgtags b/.hgtags index 3605e821..cef15fad 100644 --- a/.hgtags +++ b/.hgtags @@ -1,3 +1,4 @@ +087cafe682c014863b4aa8a6ea21431251a6ad3c RELEASE_308 140415ffbcef86a42b4d672249927364430d3d38 RELEASE_111 155618b5b7930f97bd84b82befa7a4fd6672efb3 RELEASE_304 1931f4f28074970ec53b4cd21c7fc181b4da8e5e RELEASE_301 diff --git a/NEWS b/NEWS index 5cf92b57..183f8e1b 100644 --- a/NEWS +++ b/NEWS @@ -2,13 +2,14 @@ User visible changes for UPX ================================================================== -Changes in 3.08 (XX XXX XXXX): +Changes in 3.09 (XX XXX XXXX): + +Changes in 3.08 (12 Dec 2011): * Fix allocation in runtime stub for darwin.macho-entry (i386 and amd64). * Compress shared library on ELF i386 only [ld.so threatens even this case]. - * Minor edits for portability under various compilers * Attempt to suport ELF on QNX 6.3.0 for armel (experimental). - * Better diangostic when ELF -fPIC is needed - * PT_NOTE improvements for *BSD + * Better diangostic when ELF -fPIC is needed. + * PT_NOTE improvements for *BSD. * Preserve more ELF .e_flags on ARM. * Minor code improvements for ELF stubs * Defend against another flavor of corrupt PE header. diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index d9153a81..3b2aba5e 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -525,7 +525,7 @@ void PackLinuxElf64::patchLoader() { } -void PackLinuxElf32::ARM_updateLoader(OutputFile */*fo*/) +void PackLinuxElf32::ARM_updateLoader(OutputFile * /*fo*/) { set_te32(&elfout.ehdr.e_entry, sz_pack2 + linker->getSymbolOffset("_start") + @@ -552,13 +552,13 @@ void PackLinuxElf32mipseb::updateLoader(OutputFile *fo) ARM_updateLoader(fo); // not ARM specific; (no 32-bit immediates) } -void PackLinuxElf32::updateLoader(OutputFile */*fo*/) +void PackLinuxElf32::updateLoader(OutputFile * /*fo*/) { set_te32(&elfout.ehdr.e_entry, sz_pack2 + get_te32(&elfout.phdr[0].p_vaddr)); } -void PackLinuxElf64::updateLoader(OutputFile */*fo*/) +void PackLinuxElf64::updateLoader(OutputFile * /*fo*/) { set_te64(&elfout.ehdr.e_entry, sz_pack2 + get_te64(&elfout.phdr[0].p_vaddr)); @@ -1025,8 +1025,10 @@ static const #include "stub/arm-linux.elf-entry.h" static const #include "stub/arm-linux.elf-fold.h" +#if 0 static const #include "stub/arm-linux.shlib-init.h" +#endif static const #include "stub/armeb-linux.elf-entry.h" @@ -2375,10 +2377,10 @@ int PackLinuxElf32::ARM_is_QNX(void) unsigned const sz_interp = get_te32(&phdr->p_filesz); unsigned const pos_interp = get_te32(&phdr->p_offset); if (sz_interp <= sizeof(interp) - && (sz_interp + pos_interp) <= fi->st_size()) { + && (sz_interp + pos_interp) <= (unsigned) fi->st_size()) { fi->seek(pos_interp, SEEK_SET); fi->readx(interp, sz_interp); - for (int k = -5+ sz_interp; k>=0; --k) { + for (int k = sz_interp - 5; k>=0; --k) { if (0==memcmp("ldqnx", &interp[k], 5)) return 1; } diff --git a/src/version.h b/src/version.h index 008f5bce..d734e32d 100644 --- a/src/version.h +++ b/src/version.h @@ -1,6 +1,6 @@ -#define UPX_VERSION_HEX 0x030800 /* 03.08.00 */ -#define UPX_VERSION_STRING "3.08" -#define UPX_VERSION_STRING4 "3.08" -#define UPX_VERSION_DATE "Sep 09th 2010" -#define UPX_VERSION_DATE_ISO "2010-09-09" -#define UPX_VERSION_YEAR "2010" +#define UPX_VERSION_HEX 0x030900 /* 03.09.00 */ +#define UPX_VERSION_STRING "3.09" +#define UPX_VERSION_STRING4 "3.09" +#define UPX_VERSION_DATE "Dec 13th 2011" +#define UPX_VERSION_DATE_ISO "2011-12-13" +#define UPX_VERSION_YEAR "2011"