Commit graph

2474 commits

Author SHA1 Message Date
Andrea Mazzoleni
b3dc7e55c1 Use dedicated scriptcat() for cmd.exe batch parameter serialization in os_script() 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
576873f0f9 Use tv[1] as mtime in Windows futimens and utimensat emulation 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3c88559379 Quote empty arguments in Windows command line generation 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
7ab8aa69c4 Fix false persistent inode reporting on FAT/exFAT/FAT32 under Windows 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3c1a8c3e7f Update AGENTS.md 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
1e7c9d9226 Update AGENTS.md 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9acce63c79 Fix import fetch fallback across matching hash candidates 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
4402be51a0 Add regression test for modified hardlink scan recovery 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3b79e21c2f Document scan phase invariants 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
d5d999f11d Fix modified hardlink inode tracking during scan 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3dfab5232c Prevent partial fix from finalizing incomplete files 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
036b099eae Keep unrecoverable files quarantined until fix completion 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
65e6564e13 Clarify CHG block handling during interrupted sync recovery 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
b959f0056e Quiesce read-ahead before thermal spin-down 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
4423c8c895 Detect truncated parity using the contiguous valid physical prefix 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
ef6fa54ee2 Fix parity writer error propagation in io_flush and abort sync on parity write failures 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
fa0a77f84c Add missing esc_tag() in status and parity split log tags 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
e5246cc309 Fix io_flush_thread() to wait for in-flight writer tasks before returning 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
d592cccffb Set stream state to EOF in sfill when reaching stream size limit 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
d4ae953137 Fix sopen_write call signature in HAVE_MT_WRITE block by adding stream flags 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9ef9155ccf Enforce content file CRC as terminal by rejecting trailing data and terminating parse loop 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
db34e93936 Check and report shared physical devices across array disks 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
e241b9b43d Add SMHasher3 adapters and validation results for SnapRAID hash functions 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
b8ffdbd1f7 Propagate smartctl info options in Windows devtree and thermal monitoring 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
175649e236 Fix spinup and spindown failure when skipping non-rotational devices 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
55f0644004 Handle short read and pread operations in import and search paths 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
608393867a Fix undefined behavior in STREAM buffer bounds checking by avoiding out-of-bounds pointer arithmetic 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3185e1bf34 Fix undefined behavior in extent file comparison by casting pointers to uintptr_t 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
bd856b456b Fix undefined _linux macro typo to __linux__ 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9c6e3952c5 Remove unused MetroHash implementation and references 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
4ec28b4b58 Redirect uncaptured stdio streams to NUL in os_spawn on Windows 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
87977f28f4 Harden PowerShell execution with safe SearchPathW and os_spawn 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
c1fa9e23b6 Remove legacy in-place mtime_nsec migration in multithread scanner 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
fd09e72816 Add buffer bounds check before appending wildcard in windows_opendir_find 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
f48e406d52 Convert extended UNC paths to standard UNC format in windows_realpath 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
f9626f6e3e Normalize negative pre-1970 FILETIME timestamps via windows_time2stat 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
a8ffcec127 Accumulate ReadCount and WriteCount into 64-bit count in devstat 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
caeb3a9d1b Fix PrintNameOffset WCHAR index scaling and add bounds validation in windows_readlink 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
091e44afed Handle short writes and EINTR in sflush, handle_write, and parity_write 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
712b54ec98 Reject incomplete VPD page 0x80 instead of clamping page_len 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
8707c588a0 Fix 16-bit big-endian length parsing for SCSI VPD page 0x80 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
3c1772d478 Move user and group resolution before fork for async-signal safety 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
e946af060e Update AGENTS.md 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
59f3086841 Track read-only handle fallback to report accurate write permission errors instead of EBADF 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
05778a9a46 Serialize bandwidth rate limiter sleep inside mutex to eliminate parallel worker stall waves 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9c93cbfcaa Forward configuration file options to spindown on error 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
8c9a91c93b Improve error message when content files are damaged or truncated 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
35b4d4b2ed Remove stale snapshot link if renaming device link fails on Windows 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
fa8913a759 Use monotonic clock in os_tick_ms and os_tick_sec on POSIX systems 2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
cdd8798227 Use unsigned char for character range comparisons in match_class 2026-08-18 23:33:58 +02:00