On Monday 20 October 2025 15:14:19 Martin Storsjö wrote: > On Sun, 5 Oct 2025, Pali Rohár wrote: > > > Free space check code in mingw-w64 ftruncate64 function is broken. > > For example when the volume is not found, it calls GetDiskFreeSpaceExW() > > with NULL first argument which always fails. This code seems to be > > unreliable and probably is wrong as the POSIX ftruncate function can > > create a file with holes which means that reported file size can be larger > > then the underlying disk size. So disable free space check and let followup > > WinAPI calls to fail if there are size restriction issues. > > --- > > mingw-w64-crt/stdio/mingw_ftruncate64.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/mingw-w64-crt/stdio/mingw_ftruncate64.c > > b/mingw-w64-crt/stdio/mingw_ftruncate64.c > > index 57a6b8476261..c8892f2afb9b 100644 > > --- a/mingw-w64-crt/stdio/mingw_ftruncate64.c > > +++ b/mingw-w64-crt/stdio/mingw_ftruncate64.c > > @@ -12,6 +12,7 @@ > > #include <windows.h> > > #include <psapi.h> > > > > +#if 0 > > /* Mutually exclusive methods > > We check disk space as truncating more than the allowed space results > > in file getting mysteriously deleted > > @@ -238,6 +239,7 @@ checkfreespace (const HANDLE f, const ULONGLONG > > requiredspace) > > } /* We have enough space to truncate/expand */ > > return 0; > > } > > +#endif > > This sounds reasonable, but if we're disabling it, we can just outright > remove the code as well. If we need it back, we can dig it up from git. > > // Martin
This file already contains more disabled code. And I wanted to do simple change to this file. You are right that it could be cleaned up; tests can be moved into the appropriate directory, etc... _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
