1
0
mirror of https://github.com/upx/upx.git synced 2025-08-11 22:52:30 +08:00
Commit Graph

4486 Commits

Author SHA1 Message Date
f59826ce12 PowerPC: highest covered address in cache sync
modified:   src/powerpc-expand.S
	modified:   src/powerpc64-expand.S
2025-04-27 12:55:45 -07:00
e2c76e1d0e Integrate CI changes
modified:   ../.github/workflows/ci.yml
	modified:   ../misc/cmake/print_info.cmake
	modified:   ../misc/testsuite/upx_testsuite_1.sh
	modified:   file.cpp
	modified:   help.cpp
2025-04-27 11:07:01 -07:00
d2b19ddbf7 arm64 shlib, arm32, mips: workaround Linux bug in msync
msync did not clean the data cache
https://github.com/upx/upx/issues/907
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/arm64-linux.elf-so_fold.S
	modified:   stub/src/arm64-sync-cache-range.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
           plus generated .h .map
2025-04-26 14:08:49 -07:00
c7c6066dae arm64 sync from data cache into RAM before msync
https://github.com/upx/upx/issues/910
Same as https://github.com/upx/upx/issues/907 which implies
that Linux msync() has a bug: msync() syscall should perform the sync,
just like write() syscall must perform the sync.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-fold.S
           plus generated .h .map
2025-04-25 09:07:06 -07:00
9945c30517 MacOS: add decompressor sections into generated stub
Compressed output is now generated, but runtime code needs fixing.
	modified:   p_mach.cpp
	modified:   stub/Makefile
2025-04-18 08:09:30 -07:00
5247c8320d PowerPC64 stub: flush dcache before msync
Same code as PowerPC32, but with larger CACHELINE of 128
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated .h .map
2025-04-17 08:23:01 -07:00
0d08e26228 buildLinuxLoader needs even more space for list of sections
modified:   p_lx_elf.cpp
2025-04-17 08:14:29 -07:00
344f9d7e19 PowerPC stub: flush dcache before msync
Should not be necessary: bug in Linux 5.4.290
https://github.com/upx/upx/issues/907
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/powerpc-linux.elf-fold.S
           plus generated .h .map
2025-04-16 08:42:47 -07:00
7a37986240 PowerPC syscall trace for debugging the run-time de-compressor
Enabled for now.
https://github.com/upx/upx/issues/907
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/powerpc-linux.elf-fold.S
           plus generated .h .map
2025-04-14 09:52:08 -07:00
ea168d0cc3 MacOS: Revert ec1a45b658 (2025-04-04)
Try to fix CI build first ...
	modified:   p_mach.cpp
	modified:   stub/Makefile
2025-04-12 08:36:53 -07:00
c25fd179ad --help shows --fileinfo command-line option
https://github.com/upx/upx/issues/908
	modified:   help.cpp
2025-04-12 08:34:04 -07:00
637312b454 Diagnose syscall failures in upx_mmap_and_fd
Costly in space (typ. 1700 bytes), but needed; especially by
embedded environments with small tmpfs or old Linux.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/upxfd_android.c
	modified:   stub/src/upxfd_linux.c
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
           plus generated .h .map .dump
2025-04-12 08:34:04 -07:00
c58477b659 DEBUG powerpc stub
DEBUG ONLY.  DO NOT SHIP!
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/powerpc-linux.elf-fold.S
           plus generated .h .map
2025-04-12 08:34:04 -07:00
ca44679bb2 Forgot PEMAIN10
Partial comment-out of conditional expression was confusing:
        /*multipass ? "PEMULTIP" :  */ "",
Should have commented out the whole "?:" argument to addLoader(),
or deleted it entirely.
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_w64pe_amd64.cpp
2025-04-12 08:34:04 -07:00
b676cb20c9 Fix linkage from decompress: to LZMA_ELF00
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arm64-linux.elf-entry.S
           plus generated .h .dump .map
2025-04-12 08:34:04 -07:00
096c643f3f Use NBPW where possible; NFC
modified:   stub/src/arch/i386/lzma_d-i386-hand.S
2025-04-12 08:34:04 -07:00
b935155f67 Support opt->small; clarify calls to addLoader
modified:   p_w64pe_amd64.cpp
2025-04-12 08:34:04 -07:00
f7a4b23fad Successful build for MacOS: compile and link.
Fails to excecute, but at least 'cmake --build .' works.
	modified:   p_mach.cpp
	modified:   stub/Makefile
	modified:   stub/arm64-darwin.macho-fold.h
	modified:   stub/src/arch/powerpc/32/Makefile.extra
	modified:   stub/tmp/arm64-darwin.macho-fold.map
2025-04-12 08:34:04 -07:00
ffd53a1781 Typo Makefile.extra
modified:   stub/src/arch/arm64/v8/Makefile.extra
2025-04-12 08:34:04 -07:00
66dbc5cbd1 Tabs in comments
modified:   stub/src/arch/arm64/v8/fall-through.sed
2025-04-12 08:34:04 -07:00
f654479924 Fix arm64/v8/lzma_d_cf.S
Another compiler-generated 'ret'-in-the-middle (see i386)
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arch/arm64/v8/Makefile.extra
	new file:   stub/src/arch/arm64/v8/fall-through.sed
	modified:   stub/src/arch/arm64/v8/lzma_d_cf.S
	modified:   stub/src/arch/i386/Makefile.extra
           plus generated .h .map .dump
2025-04-12 08:34:04 -07:00
9c36f02c27 Debug --lzma --small, especially *-hand.S for ELF
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/Makefile
	modified:   stub/src/amd64-darwin.macho-entry.S
	modified:   stub/src/amd64-expand.S
	modified:   stub/src/arch/amd64/lzma_d-amd64-hand.S
	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arch/arm/v4a/lzma_d-arm-hand.S
	modified:   stub/src/arch/arm/v4a/lzma_d_cs.S
	modified:   stub/src/arch/arm64/v8/lzma_d-arm64-hand.S
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arch/arm64/v8/lzma_d_cs.S
	modified:   stub/src/arch/i386/lzma_d-i386-hand.S
	modified:   stub/src/arch/powerpc/32/lzma_d-ppc32-hand.S
	modified:   stub/src/arch/powerpc/64/lzma_d-ppc64-hand.S
	modified:   stub/src/arch/powerpc/64le/lzma_d-ppc64-hand.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-so_fold.S
           plus generated .h .dump
2025-04-12 08:34:04 -07:00
d7fd28f91a De-tabify; remove trailing whitespace
vim; :set ts=4; :%retab; :wq
	modified:   stub/src/arch/amd64/lzma_d-amd64-hand.S
	modified:   stub/src/arch/arm/v4a/lzma_d-arm-hand.S
	modified:   stub/src/arch/arm64/v8/lzma_d-arm64-hand.S
	modified:   stub/src/arch/i386/lzma_d-i386-hand.S
	modified:   stub/src/arch/lzma/LzmaDecodeFlow.c
	modified:   stub/src/arch/powerpc/32/lzma_d-ppc32-hand.S
	modified:   stub/src/arch/powerpc/64/lzma_d-ppc64-hand.S
	modified:   stub/src/arch/powerpc/64le/lzma_d-ppc64-hand.S
2025-04-12 08:34:04 -07:00
b72c0af2ff Fix ppc and ppc64 for --lzma --small
modified:   stub/src/arch/powerpc/64le/lzma_d-ppc64-hand.S
	modified:   stub/src/arch/powerpc/64/lzma_d-ppc64-hand.S
	modified:   stub/src/arch/powerpc/32/lzma_d-ppc32-hand.S
	modified:   stub/src/arch/powerpc/64le/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/64/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/32/lzma_d_cs.S
	modified:   stub/src/i386-linux.elf-main2.c
           plus generated *.h *.dump *.map
2025-04-12 08:34:04 -07:00
e9154319e9 WIP --lzma --small using hand-coded LzmaDecode
So far: tests OK on i386, amd64, arm64
	modified:   p_lx_elf.cpp

	new file:   stub/src/arch/powerpc/64le/lzma_d-ppc64-hand.S
	new file:   stub/src/arch/powerpc/64/lzma_d-ppc64-hand.S
	new file:   stub/src/arch/powerpc/32/lzma_d-ppc32-hand.S
	new file:   stub/src/arch/i386/lzma_d-i386-hand.S
	new file:   stub/src/arch/arm64/v8/lzma_d-arm64-hand.S
	new file:   stub/src/arch/arm/v4a/lzma_d-arm-hand.S
	new file:   stub/src/arch/amd64/lzma_d-amd64-hand.S

	modified:   stub/src/arch/amd64/lzma_d.S
	modified:   stub/src/arch/amd64/lzma_d_cs.S
	modified:   stub/src/arch/arm/v4a/lzma_d_cs.S
	deleted:    stub/src/arch/arm64/v8/lzma_d-arm.S
	modified:   stub/src/arch/arm64/v8/lzma_d.S
	modified:   stub/src/arch/arm64/v8/lzma_d_cs.S
	modified:   stub/src/arch/arm64/v8/nrv2b_d32.S
	modified:   stub/src/arch/arm64/v8/nrv2d_d32.S
	modified:   stub/src/arch/arm64/v8/nrv2e_d32.S
	modified:   stub/src/arch/i386/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/32/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/64/lzma_d_cs.S
	modified:   stub/src/arch/powerpc/64le/lzma_d_cs.S
	modified:   stub/src/arm64-darwin.macho-entry.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-so_entry.S
	modified:   stub/src/arm64-linux.shlib-init.S

	modified:   stub/src/arch/powerpc/64le/Makefile.extra
	modified:   stub/src/arch/powerpc/64/Makefile.extra
	modified:   stub/src/arch/powerpc/32/Makefile.extra
	modified:   stub/src/arch/i386/Makefile.extra
	modified:   stub/src/arch/arm64/v8/Makefile.extra
	modified:   stub/src/arch/arm/v4a/Makefile.extra
	modified:   stub/src/arch/amd64/Makefile.extra
           plus generated *.h *.dump *.map
2025-04-12 08:34:04 -07:00
3af2b21869 CI updates 2025-04-11 09:41:08 +02:00
c4bfebeceb CI updates 2025-04-10 20:04:34 +02:00
d23484b9db CI updates 2025-04-09 11:32:13 +02:00
071579b5b6 Cleanup after broken tools
zig/powerpc64le/musl newly undefined openat64; adjacent literal strings
in C source were not concatenated; comment introduced by double slash
did not ignore backslash in rest of line
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_linux.c
2025-03-21 13:25:02 -07:00
ff9d577e46 O_DIRECTORY is architecture-dependent
https://github.com/upx/upx/issues/902
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
	modified:   stub/src/upxfd_linux.c
           plus generated .h .map .dump
2025-03-21 10:54:27 -07:00
a25c20ee0b M_LZMA with hi parameter bytes confused --ultra-brute
https://github.com/upx/upx/issues/900
	modified:   packhead.cpp
	modified:   p_lx_elf.cpp
2025-03-20 09:48:00 -07:00
ff75a462a4 Fighting over .e_shentsize
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
2025-03-18 13:48:19 -07:00
e0b6ff1924 More checking in unpack()
https://github.com/upx/upx/issues/898
	modified:   p_lx_elf.cpp
2025-03-18 08:40:08 -07:00
1c5fae74e0 Fix recovery of readlink() when /proc/self/exe is missing
https://github.com/upx/upx/issues/897
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-fold.S
           plus generated .h
2025-03-16 12:37:57 -07:00
6f650ca16f mips memfd_create() and syscall error handling
https://github.com/upx/upx/issues/895
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
           plus generated .h .dump .map
2025-03-13 08:07:26 -07:00
c2da21ba4e CI updates 2025-03-05 12:13:21 +01:00
903ca50391 Workaround valgrind-3.24.0 botch of 'notrack' on i386
https://github.com/upx/upx/issues/890
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated .h .map
2025-03-02 14:30:50 -08:00
70f1ab8cb7 Nice message for ancient Linux lacking memfd_create
... or O_TMPFILE for recovery using /dev/shm
https://github.com/upx/upx/issues/889
	modified:   stub/src/upxfd_linux.c
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated  .h  .map  .dump
2025-03-02 11:46:17 -08:00
6998449715 Remove inline syscalls from MIPS stubs
They were a maintenance headache, especially for error handling.
	modified:   stub/src/i386-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/include/linux.h
	modified:   stub/src/mips.r3000-expand.S
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
2025-03-02 11:32:49 -08:00
fb0f6c6a00 Escape hatch needs 'notrack' to enter
modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-fold.S
2025-03-02 11:22:05 -08:00
dbde75028c Avoid corrupted P_hdr
https://issues.oss-fuzz.com/u/1/issues/398127991
	modified:   p_lx_elf.cpp
2025-03-02 11:12:08 -08:00
90d86ea59e Prevent leak even if corrupted input
https://issues.oss-fuzz.com/u/1/issues/42531955
	modified:   pefile.cpp
2025-02-27 17:10:52 -08:00
64891286ba Unpack: better checking of bounds for DT_HASH
https://issues.oss-fuzz.com/u/1/issues/398075916
	modified:   p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
e52a3ceb48 Unpack: Entire ElfXX_Ehdr must be present in de-compressed Ehdr+Phdrs
https://issues.oss-fuzz.com/u/1/issues/397728078
(previous commit: https://issues.oss-fuzz.com/u/1/issues/397500915)
	modified:   p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
8cce9cf641 Detect bad b_info.method
https://issues.oss-fuzz.com/u/1/issues?q=upx
	modified:   p_lx_elf.cpp
	modified:   p_unix.cpp
	modified:   packhead.cpp
	modified:   packhead.h
2025-02-22 07:55:14 -08:00
896dff9619 src/check: some toolchains are buggy 2025-02-22 06:43:28 +01:00
84a0347df1 testsuite: update checksums caused by version bump 2025-02-21 00:12:41 +01:00
fc5e44f391 all: post-release version bump 2025-02-20 23:56:24 +01:00
8bf49aa4f2 all: prepare for release v5.0.0 2025-02-20 16:02:44 +01:00
b8079bb6eb CI updates 2025-02-19 16:45:44 +01:00