Commit Graph
1191 Commits
Author SHA1 Message Date
Dean e48379c7af Merge pull request #11299 from p3n1cillin/claude/relinker-duplicate-relocations
fix(relinker): accept an identical duplicate relocation in Windows executables
2026-10-27 11:07:09 +13:00
Dean d68ea2314c Merge pull request #11038 from plexerPK/codex/executable-tls-special-sections
fix(relinker): reject executable TLS symbols in special sections
2026-10-27 10:59:53 +13:00
Dean 6df35a4f58 Merge pull request #10997 from SandstromPL/fix/relinker-backup-copies-in-conversion
fix(relinker): skip backup copies of guest modules in the online converter too
2026-10-27 10:58:32 +13:00
Dean 5566e1e097 Merge pull request #10971 from roboterspinne/fix/relinker-linux-nonzero-import-addends
fix(relinker): reject nonzero GLOB_DAT and JUMP_SLOT addends in Linux output
2026-10-27 10:58:17 +13:00
Dean 1748d26517 Merge pull request #10871 from Chronyyx/feat/relinker-frame-short-exits
feat(relinker): frame red-zone leaves whose prologue or exit is shorter than a jump
2026-10-27 10:55:26 +13:00
Dean 7a1dd637ae Merge pull request #10401 from roboterspinne/fix/relinker-elf-type-allowlist
fix(relinker): accept only ET_EXEC, ET_DYN and the SCE dynamic ELF types as executable input
2026-10-27 10:54:16 +13:00
Dean 613a877ab9 Merge pull request #11232 from MarcZX10/marc/fix-relinker-island-overflow
fix(relinker): place 256-bit store islands across 2^63 without signed overflow
2026-10-27 10:39:59 +13:00
Dean ece00a8bfd Merge pull request #11178 from LuPetro/test/windows-red-zone-execution
test(relinker): execute red-zone framing regressions on Windows
2026-10-27 10:38:45 +13:00
Dean 357b586723 Merge pull request #11067 from slopgobblercobbler/fix/relinker-unwind-narrow-unsigned-overflow
fix(relinker): reject unsigned address overflow for narrow unwind encodings
2026-10-27 10:36:42 +13:00
Dean e34b992e8a Merge pull request #11010 from harisibrar1/fix/relinker-rpath-value
fix(relinker): reject a repeated --rpath
2026-10-27 10:35:33 +13:00
Dean 37caf45550 Merge pull request #10912 from ahmadmuj/fix/anyps5-frame-red-zone-requires-windows
fix(relinker): reject --frame-red-zone without --windows
2026-10-27 10:33:25 +13:00
Dean bfa6203903 Merge pull request #10763 from harisibrar1/test/relinker-python-utf8
test(relinker): run the relinker tests in Python's UTF-8 mode
2026-10-27 10:31:44 +13:00
Dean 7c3d8b3bbb Merge pull request #11007 from al3ss4ndrolb/test/suggest-patches-resolved-temp-root
test(relinker): compare patch advisor output against the resolved temporary root
2026-10-27 09:15:45 +13:00
Dean 3fa7e3f9cc Merge pull request #10545 from Bram910/fix/file-prefix-allocation
fix(io): avoid allocating the entire file prefix limit
2026-10-27 09:00:30 +13:00
Adrià cabd860cbe Merge pull request #10439 from KSWORK2001/fix/relinker-syscall-number-paths
fix(relinker): agree on the syscall number between the two constant-load paths
2026-10-26 19:10:09 +01:00
Adrià aa04180e37 Merge pull request #10391 from roboterspinne/fix/relinker-macos-relocation-message
fix(relinker): drop Windows from errors the macOS target also reports
2026-10-26 19:10:01 +01:00
Dean ae17955d2c Merge pull request #10945 from roboterspinne/fix/relinker-windows-lazy-stub-alignment
fix(relinker): align the stack in Windows lazy import failure stubs
2026-10-27 05:53:57 +13:00
Dean 50ef454b5a Merge pull request #11082 from roboterspinne/fix/relinker-windows-fixed-base-user-limit
fix(relinker): keep fixed Windows images below the highest user address
2026-10-27 05:40:54 +13:00
Dean 728266059d Merge pull request #11063 from roboterspinne/fix/relinker-red-zone-pop-rm-xop
fix(relinker): stop reading pop r/m without REX as XOP in red-zone framing
2026-10-27 05:40:19 +13:00
Dean b73c5659a5 Merge pull request #11000 from plexerPK/fix/windows-empty-tls-file-offset
fix(relinker): accept empty TLS images beyond EOF on Windows
2026-10-27 05:35:55 +13:00
Dean 47d389e6da Merge pull request #10561 from vingelvatten/fix/relinker-dynamic-segment-tail
fix(relinker): accept PT_DYNAMIC data after DT_NULL
2026-10-27 05:27:55 +13:00
review 044e52a2f0 Merge commit 'refs/review/9669/head' into HEAD 2026-10-26 14:10:41 +01:00
Dean 190386eb70 Merge pull request #11058 from plexerPK/fix/executable-tls-symbol-bounds
fix(relinker): reject out-of-range executable TLS symbols
2026-10-27 00:59:47 +13:00
p3nicillinandClaude Opus 5.5 9673868d5f fix(relinker): accept an identical duplicate relocation in Windows executables
A RELA entry repeated with the same target, type and addend writes the
same value twice, so applying it once is equivalent. The Windows
relocation builder refused it as overlapping and code analysis as an
invalid relative relocation; the Linux output already passed it through.
Forever Launcher's game-child.bin (PPSA99030) repeats one RELATIVE entry
at 0x2df70 and could not be converted. Distinct entries at one target
are still refused.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 11:38:33 +00:00
fogydes 719701a68e fix(libkernel): follow the measured exec lookup and image checks 2026-10-26 16:19:46 +05:30
Adrià 01cd4a42df Merge pull request #9711 from milescoviello/test/input-magic-asan
test(relinker): bound input_magic's large input with ASan's allocation cap
2026-10-26 11:35:00 +01:00
Adrià cbf76e7a6e Merge pull request #9408 from rursache/feat/macos-trace-imports
feat(relinker): trace function imports on macOS
2026-10-26 11:27:51 +01:00
fogydes f53346a288 feat(libkernel): implement execv, execvp and execve process replacement 2026-10-26 14:51:38 +05:30
Dean ec9256a042 Merge pull request #10852 from Mherberts/codex/fix-elf-section-table-alignment
fix(relinker): align ELF64 section header tables
2026-10-26 22:03:40 +13:00
Dean fb5afb3ef7 Merge pull request #8236 from javierUDP/test/rosetta-inplace-execution
test(relinker): execute the in-place Rosetta replacements
2026-10-26 21:59:04 +13:00
plexerPK 5f4c8cb927 fix(relinker): reject executable TLS symbols outside their block 2026-10-26 08:45:23 +01:00
Dean f33c06b639 Merge pull request #10862 from hakarrr/patch-2
test(relinker): compile the executable-exports probe on glibc before 2.36
2026-10-26 20:38:48 +13:00
Dean b744c37f4e Merge pull request #8076 from brainiac91/fix/relinker-embedded-data-tables
fix(relinker): mask embedded data tables in inter-FDE gaps
2026-10-26 20:36:58 +13:00
Dean 637397576b Merge pull request #10102 from JJenkx/windows/relinker-trailing-note
fix(relinker): ignore an unmapped note segment outside a module's file
2026-10-26 20:34:57 +13:00
Dean 2bdd30ebe6 Merge pull request #10719 from WhiteAssassins/feat/patch-advisor-list-verified
feat(tools): list verified patch catalog entries
2026-10-26 20:00:41 +13:00
VingelvattenandClaude Opus 5.5 0103719e10 Merge branch 'main' into fix/relinker-dynamic-segment-tail
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 07:37:56 +01:00
Dean e3657de5e4 Merge pull request #10402 from roboterspinne/fix/relinker-linux-load-bounds
fix(relinker): require the Linux entry, relocation offsets and DT_PLTGOT in PT_LOAD memory
2026-10-26 16:30:06 +13:00
Karan Shrivastava 0f45390a92 fix(relinker): agree on the syscall number between the two constant-load paths 2026-10-25 23:00:48 -04:00
Dean db1a91f42b Merge pull request #10303 from Bram910/fix/native-path-null-bytes
fix(io): reject NUL bytes in native file paths
2026-10-26 14:39:36 +13:00
Dean dbf4f6aa3f Merge pull request #10607 from roboterspinne/fix/relinker-linux-run-path
fix(relinker): validate every entry of the Linux run path
2026-10-26 14:26:39 +13:00
Dean 98891b5a0a Merge pull request #10403 from roboterspinne/fix/relinker-reject-second-pt-dynamic
fix(relinker): reject a second PT_DYNAMIC segment
2026-10-26 14:15:52 +13:00
Brainiac91 133ae3261f fix(relinker): only end the gap mask at a block that holds a syscall
A chain of table bytes that decodes to a return after a padding run looked
like trailing gap code and stopped the mask inside a real table, which hands
the rest of it back to the decoder. Truncating now needs the block to contain
a syscall, or to end where the gap turns into padding, so a 2 KiB table with
00/cc/90 runs and return-like bytes stays masked.
2026-10-26 02:02:49 +02:00
Brainiac91 3cb3e8f53b fix(relinker): end the data table mask at a control-flow terminator
A gap that holds a table, padding and then a syscall stub followed by
non-padding data classified the stub as invalid, so the mask ran to the end
of the gap and hid the syscall from the scan. Mark any instruction that ends
control flow as a terminator, which stops the mask before that block.

Covered by the helper test and by the SCE, SysV and guest-module conversion
tests, which convert before the change and refuse syscall 9 after it.
2026-10-26 01:23:47 +02:00
Brainiac91 ac1dc93255 perf(relinker): binary-search function ranges for gap branch targets
Every pending gap target walked the whole unwind function vector, so a
large executable cost targets x functions. Sort and merge the ranges once,
then use upper_bound for each target.
2026-10-26 01:23:39 +02:00
Adrià 2b5225605b Merge pull request #9719 from AasishDairelSahayaGrinspan/fix/relinker-gs-non-memory-operands
fix(relinker): leave GS-prefixed LEA and NOP instructions unchanged
2026-10-26 00:15:58 +01:00
Dean 1997e647f9 Merge pull request #10017 from SteelCrab/review-split/relinker-import-types
fix(relinker): preserve imported ELF symbol types
2026-10-26 12:11:16 +13:00
Brainiac91 640577c3ec fix(relinker): keep the terminator before a decoded padding suffix
trailing[next] is Padding for an instruction that starts with 00 or CC
even when the rest of its bytes are code, so it is not the same as
padding[next]. The recurrence treated the two as interchangeable and
overwrote the trailing state of a syscall that precedes such an
instruction, which let the fallback extend the mask over it and made
both conversion routes accept the gap. Decide from the trailing state
whether the successor is padding.

The regression covers the table helper plus the executable and guest
module routes; without the correction the executable and module
conversions succeed instead of refusing syscall 9.
2026-10-26 00:37:56 +02:00
MarcZX10 9da4efcced test(relinker): lower a 256-bit store through an island across 2^63 2026-10-25 22:13:34 +00:00
Dean dab64bbc52 Merge pull request #9375 from thakrarsagar/codex/relinker-output-path-cache
fix(relinker): avoid repeated output path canonicalization
2026-10-26 11:10:02 +13:00
Dean 905c3e2870 Merge pull request #10647 from Bram910/fix/call-site-hint-prefixes
fix(relinker): resolve BND and NOTRACK call sites
2026-10-26 11:09:02 +13:00