Commit Graph
5 Commits
Author SHA1 Message Date
Alex WhitehouseandClaude Opus 5.5 ac08050a7d fix(libkernel): extend without sparse marking when the volume query fails
Discovery failures now fall back to the plain end-of-file extension.
Sparse-marking and EOF failures still map to errors.
An IAT-patched regression covers the three truncate paths.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-01 16:03:12 +00:00
Alex Whitehouse b0035b21a2 fix(libkernel): leave Windows truncate extensions as sparse holes
Follow FreeBSD 11.4 ffs_truncate by leaving the extended range as a hole. Use FSCTL_SET_SPARSE on sparse-capable Windows volumes before setting EOF.
2026-11-01 14:51:02 +00:00
boykopovar f38d29fd08 refactor(sdk): add canonical headers for remaining libraries 2026-10-24 23:17:42 +03:00
al3w0f205 5852fd086e test(libkernel): cover truncate failure on negative lengths with EINVAL 2026-10-20 19:05:00 -05:00
xXPBSXxandClaude Sonnet 5.5 bcbcf55b5b fix(libkernel): extend a file with ftruncate without writing zero bytes on Windows
ftruncate, truncate and sceKernelFtruncate extended a file through _chsize_s,
which writes the whole new length as zero bytes. FreeBSD extends the file
without writing data (kern_ftruncate -> ffs_truncate) and fails a length the
file system cannot hold with EFBIG. NativeFtruncate now sets the end of file
with SetFileInformationByHandle and maps ERROR_DISK_FULL to ENOSPC and
ERROR_FILE_TOO_LARGE/ERROR_INVALID_PARAMETER to EFBIG.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 05:58:22 +02:00