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;
 }