Andrea Mazzoleni
237c9f0497
Enforce BLOCK_MAX limits on both 32-bit and 64-bit builds
2026-08-27 16:29:34 +02:00
Andrea Mazzoleni
4aef405259
Validate serialized sub pathnames in content files to prevent path traversal
2026-08-26 22:55:49 +02:00
Andrea Mazzoleni
95ac8d7b51
Validate serialized nanoseconds range when reading content files
2026-08-26 22:35:22 +02:00
Andrea Mazzoleni
e58eb16768
Avoid info memory allocation for zero runs and bound blockmax in content decoding
2026-08-26 22:35:22 +02:00
Andrea Mazzoleni
31661e13bd
Abort with internal inconsistency on duplicate or misplaced blocksize and hashsize records in content file
2026-08-26 21:19:59 +02:00
Andrea Mazzoleni
33d96adbce
Validate that the total disk buffer memory does not exceed 256 MiB
2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
65e1eac061
Fix int64_t overflow on file size when decoding content file
2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
c7b8068e36
Fix 32-bit integer truncation in block metadata allocations and file_block
2026-08-26 21:11:46 +02:00
Andrea Mazzoleni
78e87549ca
Improve directory scan filesystem boundary detection using statx() for mount and subvolume IDs
2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
6583897fcf
Reserve snapraid- prefix for native ZFS snapshots and introduce fssnapshot_path
2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
ebb199de3d
Fix snapshot path resolution and aliased paths by storing sub_dir in fssnapshot_struct
2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
abcdd688dd
Improve snapshot fallback warning messages to inform users of reduced recovery capability if files changed since the last sync
2026-08-26 09:21:24 +02:00
Andrea Mazzoleni
fd65dbd9ea
Fix undefined behavior by making TommyDS foreach callback signatures take void*
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-08-24 23:03:00 +02:00
Andrea Mazzoleni
15831064a1
Extend parent directory fsync after content file rename to all platforms
2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
b959f0056e
Quiesce read-ahead before thermal spin-down
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
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
9c6e3952c5
Remove unused MetroHash implementation and references
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
f453a72369
Preserve recovery state until a full clean sync completes
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
9255157519
Fix per-file block index overflow beyond 32 bits
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
6c8bee76fa
Continue snapshot renames across per-disk failures
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
3d23853de7
Log explicit warning when missing snapshots fall back to live filesystem
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
7b7a2d5d00
Fail sync if snapshot setup fails on a supported filesystem
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
661e539f45
Defer pending snapshot promotion until parity sync
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
0ca7c65049
Support filesystems with invalid inode numbers on individual files
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
c79f82bc99
Update to the new RAID library
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
1b2f619852
Fix typo in monothread implementation
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
3a8c5917fd
Fix leak on error in state_write
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
3484965b89
Align data disk UUID validation and write logic with parity splits using content_uuid
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
452adbd8d9
Optimize redundant devuuid() calls by storing content file UUIDs in a dedicated field
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
133e527643
Add support for specifying case-insensitive SMART attribute names in the smartignore option
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
00b4cbafd0
Merge the CLI and Daemon portable interface
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
52f7c2184f
Add support for custom smartctl info options using a [info: ...] tag
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
d7c6a27c6d
Refactor portable support
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
bb401e2e3f
Rename randomize to os_randomize
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
f40b2decdb
Further conversions from 32 to 64 bits
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
bbd3c23cd2
Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
87313c2bfd
Delete snapshot links in Windows
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
5c1cf8560a
Secure external tools execution
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
ab72f1cfc8
Add Windows VirtualShadowCopy support for snapshots
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
033ce93d5b
Add ZFS support
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
ec9ddb474a
Rework snapshot interface
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
16b08201a4
Add Bcachefs support
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
4a37e3fece
Change the BLOCK_HASH_SIZE type to avoid potential overflow
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
2e71602267
Remove the requirement to snapshot content files
...
The new content file format now includes metadata for previous versions
of files. This allows the fix command to access historical file data from
snapshots as needed, ensuring recovery even if the live filesystem has
changed or the file was deleted during a sync.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
275063d23c
Track deallocated files in the content file for parity recovery
...
Add a new 'dealloc' list per disk to record files that were removed
or modified during a scan. This list is saved in the content file
(new format version SNAPCNT4) so that past parity contributions of
those files can be imported from previous snapshots.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
54602422dd
Change commenting style
2026-08-18 23:33:52 +02:00