Commit Graph
1354 Commits
Author SHA1 Message Date
Adrià 6d56eb813c Merge pull request #12643 from slopgobblercobbler/fix/relinker-relative-jump-tables-address-space-bounds
fix(relinker): validate text section range before scanning relative jump tables
2026-10-30 02:32:29 +01:00
Adrià 886e6d752c Merge pull request #12176 from slopgobblercobbler/fix/relinker-plt-compactor-address-space-bounds
fix(relinker): validate text section range and patch offset bounds in PLT compactor
2026-10-30 02:27:03 +01:00
Adrià b77b0372a4 Merge pull request #12307 from dkdhanda8/fix/linux-patch-unsigned-displacement
fix(elfpatcher): take rel32 displacements as unsigned differences
2026-10-30 02:04:11 +01:00
Adrià 21b9366d1a Merge pull request #9414 from Delciob/fix/relinker-msvc-nominmax
fix(relinker): support MSVC build and prevent NOMINMAX collision on W…
2026-10-30 01:20:37 +01:00
Adrià e7d8e35336 Merge pull request #6204 from vrebel11/fix/windows-entry-stub-rva-boundary
fix(relinker): guard Windows entry-stub RVA allocations
2026-10-30 00:56:57 +01:00
Adrià 992d3fa639 Merge pull request #9589 from DavidSamir/test/win-relinker-fixtures
test(relinker): run the relinker fixture suites on Windows
2026-10-30 00:45:38 +01:00
Adrià 83861d9909 Merge pull request #12068 from dantdmdarealguy/fix/relinker-cli-off-test-registrations
fix(build): skip the core/libs relinker CLI tests when ANYPS5_RELINKER_CLI is OFF
2026-10-30 00:28:20 +01:00
Dean 951f374c87 Merge pull request #12843 from PolkadotDom/fix/eip-relative-stub-relocations
fix(relinker): preserve 32-bit wrapping in stub memory relocations
2026-10-30 09:21:14 +13:00
Adrià 8943b50e27 Merge pull request #12408 from SHOnnay/fix-relinker-ud0-trap
fix(relinker): classify UD0 as a trap
2026-10-29 21:00:52 +01:00
Dean 420b6a064e Merge pull request #12621 from Ragbie/fix/windows-defer-needed-runtime-modules
fix(relinker): defer the runtime modules another deferred module needs on Windows
2026-10-30 08:49:48 +13:00
Dean 5dc9aa339b Merge pull request #12817 from slopgobblercobbler/fix/relinker-syscall-scanner-bounds
fix(relinker): validate code section bounds for instruction matches and SDK stubs
2026-10-30 08:19:09 +13:00
Dean bb04a4f1ea Merge pull request #12608 from Kikoarl/fix/strict-nid-filter-constructor-array-overflow
fix(relinker): validate constructor array address range against 64-bit overflow
2026-10-30 03:00:59 +13:00
Dean eb4650dd5f Merge pull request #11961 from roboterspinne/refactor/relinker-macos-guest-writer-reader-checks
refactor(relinker): drop macOS guest writer checks that the guest image reader already makes
2026-10-30 02:33:23 +13:00
Adrià be2242b8c8 Merge pull request #11960 from roboterspinne/fix/relinker-linux-tls-align-zero
fix(relinker): write a PT_TLS p_align of 0 as 1 in Linux output
2026-10-29 14:28:59 +01:00
dom 94ff6763da test(relinker): guard plain RIP stub relocation paths 2026-10-29 08:53:01 -04:00
dom 7521123fb0 fix(relinker): preserve 32-bit wrapping in stub memory relocations 2026-10-29 08:20:14 -04:00
Adrià 2ba7099e51 Merge pull request #12441 from SHOnnay/fix-relinker-patch-del
fix(relinker): reject DEL in patch strings
2026-10-29 12:58:12 +01:00
slopgobblercobbler b7c8a6b178 fix(relinker): validate code section bounds for instruction matches and SDK stubs 2026-10-29 12:08:44 +01:00
Adrià 1db077e876 Merge pull request #12381 from StoneDC/fix/restricted-symbol-test-partitions
test(relinker): partition restricted symbol conversions
2026-10-29 11:37:46 +01:00
slopgobblercobbler 67da880e48 fix(relinker): validate text section range before scanning relative jump tables 2026-10-29 10:09:46 +01:00
Dean 4004c97114 Merge pull request #12255 from Mherberts/codex/feat-rosetta-mulx
feat(relinker): lower MULX under --to-rosetta
2026-10-29 17:34:58 +13:00
Dean 2a48ba7886 Merge pull request #12520 from TurboTheTurtle/fix/relinker-output-preservation
fix(io): stage writes through existing output symlinks
2026-10-29 17:33:29 +13:00
slopgobblercobbler add810da0e fix(relinker): validate text section range and patch offset bounds in PLT compactor 2026-10-29 00:37:33 +01:00
Dean db93735278 Merge pull request #11582 from roboterspinne/fix/relinker-linux-guest-ident-padding
fix(relinker): zero the e_ident padding of Linux guest modules
2026-10-29 12:16:30 +13:00
Dean ede7a358ce Merge pull request #11041 from harisibrar1/fix/relinker-jmprel-none-error
fix(relinker): report a NONE entry in DT_JMPREL as an unsupported PLT relocation
2026-10-29 12:15:56 +13:00
Dean b1c5fb6186 Merge pull request #12346 from StoneDC/fix/cli-module-option-values
fix(relinker): reject empty module option values
2026-10-29 12:13:17 +13:00
Dean 67edd5fd66 Merge pull request #12240 from rooklz/test/lifecycle-plt-relocation
test(relinker): reject a PLT relocation of a guest lifecycle array slot
2026-10-29 12:11:34 +13:00
Evrim Cicek 74abb8ce1c fix(relinker): defer the runtime modules another deferred module needs on Windows 2026-10-29 02:09:01 +03:00
Evrim Cicek 9bbe133c51 test(relinker): expect a runtime module that another deferred module needs to start when loaded on Windows 2026-10-29 02:07:03 +03:00
Dean b76d41ea82 Merge pull request #11979 from xXPBSXx/carry/6713-default-heap-no-procparam
fix(libc): use the default heap for an executable without process parameters
2026-10-29 11:49:55 +13:00
Kikoarl c03f23c33b fix(relinker): validate constructor array address range against 64-bit overflow 2026-10-28 23:05:55 +01:00
AdriàandClaude Sonnet 5.5 d9ab85865a fix(elfpatcher): reject a 2^63 cross-boundary distance instead of negating INT64_MIN
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 20:09:59 +01:00
dkdhanda8 cb7ed5672e fix(elfpatcher): reject rel32 distances that only fit after a 64-bit wrap
The five Linux rel32 sites subtracted addresses and range-checked the
signed result, so two addresses more than 2^63 apart wrapped into a
small in-range displacement and was written verbatim. SignedDistance
now classifies both addresses by the 2^63 boundary, takes the
high-minus-low magnitude as a plain subtraction and rejects a distance
whose magnitude exceeds int64. The new linux_load_pages test places a
site at 0x500 and the body near 2^64: main wrote a wrapped rel32, the
change throws.
2026-10-29 00:37:07 +05:30
dkdhanda8 100b3c1c5c fix(relinker): patch Linux displacements without signed overflow
Crafted program headers can map a load segment so its page end sits at
2^63, which places the patcher's extra block above the boundary while
the original code sites stay below it. The trampoline, import trace and
guest module displacement math subtracted addresses as two int64 casts,
which overflows for such pairs before the rel32 range check runs.

Subtract in unsigned arithmetic and cast the true difference once, as
the entry stub builder already does.
2026-10-29 00:27:20 +05:30
Dean 54d68449b3 Merge pull request #12166 from slopgobblercobbler/fix/relinker-relative-table-address-space-bounds
fix(relinker): validate text section range before reading relative table targets
2026-10-29 07:25:58 +13:00
Dean b2b6f7faf5 Merge pull request #11881 from roboterspinne/fix/relinker-non-tls-relocations-tls-symbols
fix(relinker): reject non-TLS executable relocations against STT_TLS symbols
2026-10-29 07:23:45 +13:00
Adrià e4da19aff0 Merge pull request #11880 from roboterspinne/fix/relinker-guest-declared-module-binding
fix(relinker): bind imports declared from a guest module only to that module's exports on Linux and macOS
2026-10-28 18:46:00 +01:00
SAKIBUL HUDA ONNAY 9604538873 refactor(relinker): name the UD0 opcode 2026-10-28 23:25:01 +06:00
SAKIBUL HUDA ONNAY 3cdefa5aa3 fix(relinker): decode UD0 ModRM operands before trapping 2026-10-28 23:20:21 +06:00
Adrià 470a562903 Merge pull request #11226 from ebosido444-ai/docs/relinker-help
docs(relinker): describe every option in the usage text
2026-10-28 18:20:18 +01:00
Andy Ye 0974e1378e fix(io): stage writes through existing output symlinks 2026-10-28 10:04:36 -07:00
Adrià fb39cc928c Merge pull request #11722 from cocoa55/fix/rewriter-truncated-branch-into-cut
fix(codegen): reject 16-bit branches into a rewritten instruction
2026-10-28 17:35:42 +01:00
dantdmdarealguy c5a69e8e46 fix(build): skip the core/libs relinker CLI tests when ANYPS5_RELINKER_CLI is OFF
With -DBUILD_TESTING=ON -DANYPS5_RELINKER_CLI=OFF the generate step
failed: exec_arguments, loadexec_arguments, guest_timed_join_import_*,
guest_runtime_lifecycle and agc_driver_guest_memory_lifetime_converted
name the relinker target, which core/relinker defines only when the
option is on. The option is now declared in the root CMakeLists.txt,
before core/libs, and those tests are registered only with the command
line, as core/relinker already does for its own command line tests.
2026-10-28 11:05:02 -05:00
SAKIBUL HUDA ONNAY 43b49b6bc7 fix(relinker): reject DEL in patch strings 2026-10-28 19:36:50 +06:00
SAKIBUL HUDA ONNAY 2287ebbe00 fix(relinker): classify UD0 as a trap 2026-10-28 18:32:24 +06:00
StoneDC ddd18ae1d5 test(relinker): partition restricted symbol conversions 2026-10-28 19:59:32 +08:00
AdriàandClaude Sonnet 5.5 7482a5a700 test(relinker): verify entry-stub bounds before startup allocation
Replaces the source-text guard with a runtime test that tracks the largest
allocation and registers windows_entry_stub_bounds on every host.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 12:51:40 +01:00
vrebel11 e8ade52d79 fix(relinker): guard Windows entry-stub RVA allocations 2026-10-28 12:51:23 +01:00
Dean 37f7b0947f Merge pull request #12286 from B-Howell/test/relinker-masked-store-flag-diagnostics
test(relinker): report the case and flag values when a masked store stub changes the flags
2026-10-29 00:31:13 +13:00
Dean 68372dbb45 Merge pull request #11925 from Mherberts/codex/fix-unresolved-restricted-symbols
fix(relinker): validate visibility of undefined strong symbols
2026-10-28 22:53:21 +13:00