Commit Graph
18 Commits
Author SHA1 Message Date
Dean 9880159f82 Merge pull request #10240 from Project-MOC/codex/test-windows-file-writer
test(relinker): cover Windows file writer behavior
2026-10-28 12:03:16 +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
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 d4b8883fca Merge pull request #10393 from Bram910/fix/output-temporary-name-length
fix(io): stage long-named outputs with short temporary names
2026-10-26 11:01:21 +13:00
Bram910 8dfc1ef5e5 Merge remote-tracking branch 'origin/main' into fix/native-path-null-bytes 2026-10-25 09:35:37 +01:00
Bram910 4866d9e976 fix(io): avoid allocating the entire file prefix limit 2026-10-24 11:15:05 +02:00
Bram910 2d2c58d805 fix(io): stage long-named outputs with short temporary names 2026-10-23 22:45:55 +02:00
Bram910 8cfa0cbf6f fix(io): reject NUL bytes in native file paths 2026-10-23 18:50:12 +02:00
MarcZX10 88b1027c46 test(relinker): assert missing path error details 2026-10-23 16:18:01 +00:00
Project-MOC 355a90b924 test(relinker): cover Windows file writer behavior 2026-10-23 17:07:00 +02:00
Rookie 5748d7ce81 fix(relinker): compare Windows file identities by their 128-bit file ID 2026-10-21 06:09:46 +01:00
NikoandClaude Opus 5.5 3abfe906bd test(relinker): run the file writer's replacement test on a copy of itself
The running-executable replacement test copied /bin/sleep under the
names "running" and "leftover" and started the copy. On Ubuntu 26.04
/bin/sleep is the uutils multi-call coreutils binary, which picks the
utility from the file name of the path it was started through, not
from argv[0], so the copy printed "coreutils: unknown program
'running'" and exited, and file_writer_binary and file_writer_text
failed without ever replacing a running executable. The test now
copies its own executable and starts it with a "wait" argument that
sleeps, so it no longer depends on how a system binary reads its name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 21:31:32 +02:00
SandstromPLandClaude Opus 5.5 26c62cc63d fix(relinker): give the output's temporary file a unique name
A relink killed between writing <output>.tmp and renaming it left that
file behind, and every later relink of the output then fell back to the
in-place write, bringing back the failure on a running build. The
temporary file is now created under a new name beside the output with
O_CREAT | O_EXCL and the previous permission bits, and written through
that descriptor, so a file left by an earlier run never blocks a
replacement and is never touched.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 07:27:54 +05:30
SandstromPLandClaude Opus 5.5 92618d25c3 fix(relinker): replace output files instead of rewriting them in place
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 13:56:15 +05:30
Tomás Ortellado 9f9e4e28b8 fix(relinker): reject invalid and overflowing alignment 2026-10-05 08:44:55 -03:00
DiulioAires b6c97084ed fix(relinker): check byte writer bounds 2026-10-04 20:17:21 -03:00
RomainROCH b6ff4a2116 fix(relinker): reject overflowing buffer offsets 2026-09-30 18:07:26 +02:00
Darko Gjorgjijoski 42594eecd4 fix(relinker): report buffered output write failures 2026-09-28 00:25:42 +02:00