GetDiskFreeSpaceEx32A can get null pointers and still not crash.
diff --git a/files/drive.c b/files/drive.c
index 0c63a9c..c78c8ac 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -827,10 +827,14 @@
}
if (!DRIVE_GetFreeSpace(drive, &size, &available)) return FALSE;
/*FIXME: Do we have the number of bytes available to the user? */
- avail->HighPart = available.HighPart;
- totalfree->HighPart = size.HighPart;
- avail->LowPart = available.LowPart ;
- totalfree->LowPart = size.LowPart ;
+ if (totalfree) {
+ totalfree->HighPart = size.HighPart;
+ totalfree->LowPart = size.LowPart ;
+ }
+ if (avail) {
+ avail->HighPart = available.HighPart;
+ avail->LowPart = available.LowPart ;
+ }
return TRUE;
}