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