Commit graph

999 commits

Author SHA1 Message Date
Andrea Mazzoleni
0ca7c65049 Support filesystems with invalid inode numbers on individual files 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
3878c0e2e6 Silence clang static analyzer warnings 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
05884d7aa0 Fix binary varint decoders to reject values overflowing uint32_t/uint64_t declared widths 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
02413b756c Validate the product/model returned by the Windows driver 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
9a2ea26a62 Fix build in different directory 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
4ebdfe8c8f Defer deallocation of modified files to phase 2 to prevent copy-detection races 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
821756371c Block signal delivery across fork to prevent signal forwarding race condition in main.c 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
9621655a10 Cap maximum rate-limiter credit accumulation to 10 seconds to prevent huge post-pause bursts 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
a7a8ac48c3 Use eaccess instead of access in unixapp.c for consistent effective privilege checking 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
0051c58231 Validate WMI-returned VSS snapshot GUID format in mingwapp.c to mitigate potential command injection 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
7aff21e3a9 Fix wide-character buffer size parameters in mingwapp.c snwprintf calls to prevent stack buffer overflow 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
6ed860eac3 Abort execution with a fatal error if smartctl options exceed maximum argument limit 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
d49a45c43f Document the concurrency boundaries of worker threads 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
2bf0fcf97c Move string functions to new str.h and str.c files 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
4da1ab072b Move safe memory helper functions to dedicated memory.c and memory.h 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
19297d6c3d Fail if the PowerShell command is too long 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
ad6ddafd05 Fix documentation of windows_guid_is_valid 2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
ebe2bbe76c Document handle_close failures 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
ff0a4a444a Fix leak on error in argutf8 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
f17b502652 Avoid floating point underflow in thermal computation 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
bbcdb72a9f Introduce nalloc_nofail 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
8de159289a Fix strtrim to correctly trim strings containing only whitespace 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
760e0660c8 Prevent integer wrap-around when checking string length in sgetbs 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
f627f3be80 Run PowerShell commands safely via base64 encoded strings 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
e51a29927a Pass element count instead of byte count to WCHAR buffer bounds 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
5edf0b2c03 Synchronize child_process updates using interlocked Win32 APIs 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
4bbfdc43d9 Avoid 100% CPU utlization in thread_yield 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
dcb7327f15 Document why thread_yield is used 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
aa53e9f4b7 Allocate minimum 1 byte in malloc_nofail when size is 0 to prevent process abort 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
8fb52b974b Use sig_atomic_t 2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
afc643d923 Clarify comment about reading uuids 2026-08-18 23:33:55 +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
3c3d20601b Avoid some hardcoded string sizes 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
44bce00aef Fail Btrfs device listing if an unexpeced error happens 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
818bb61e3b Fix file descriptor leak in os_spawn by enabling O_CLOEXEC for compiled binaries 2026-08-18 23:33:54 +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
d6d1d6d3cd Skip spinup and spindown for non-rotational devices 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
d7c6a27c6d Refactor portable support 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
34103b65ec Allow tools to be symlinks and hardlinks 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
255a54a10a More CPU info 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
2db72e0e7e Add CRC support for macOS 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
b94f7a952c In the speed test, set the CPU affinity to the expected best core 2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
fd2dc7810f Run the speed test with and without displacement 2026-08-18 23:33:54 +02:00