Authors: Chris Morgan <cmorgan@wpi.edu>, James Abbatiello <abbeyj@wpi.edu>
Fixed response of GetFullPathNameA when buffer==NULL.

diff --git a/files/dos_fs.c b/files/dos_fs.c
index 73a6307..c708b54 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -1072,7 +1072,7 @@
     
     TRACE_(dosfs)("converting '%s'\n", name );
 
-    if (!name || !result || ((drive = DOSFS_GetPathDrive( &name )) == -1) )
+    if (!name || ((drive = DOSFS_GetPathDrive( &name )) == -1) )
     {   SetLastError( ERROR_INVALID_PARAMETER );
         return 0;
     }
@@ -1136,10 +1136,13 @@
     if (!(DRIVE_GetFlags(drive) & DRIVE_CASE_PRESERVING))
         CharUpperA( buffer );
        
-    if (unicode)
-        lstrcpynAtoW( (LPWSTR)result, buffer, len );
-    else
-        lstrcpynA( result, buffer, len );
+    if (result)
+    {
+	if (unicode)
+	    lstrcpynAtoW( (LPWSTR)result, buffer, len );
+	else
+	    lstrcpynA( result, buffer, len );
+    }
 
     TRACE_(dosfs)("returning '%s'\n", buffer );
 
@@ -1164,7 +1167,7 @@
                                  LPSTR *lastpart )
 {
     DWORD ret = DOSFS_DoGetFullPathName( name, len, buffer, FALSE );
-    if (ret && lastpart)
+    if (ret && buffer && lastpart)
     {
         LPSTR p = buffer + strlen(buffer);
 
@@ -1188,7 +1191,7 @@
     LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, name );
     DWORD ret = DOSFS_DoGetFullPathName( nameA, len, (LPSTR)buffer, TRUE );
     HeapFree( GetProcessHeap(), 0, nameA );
-    if (ret && lastpart)
+    if (ret && buffer && lastpart)
     {
         LPWSTR p = buffer + lstrlenW(buffer);
         if (*p != (WCHAR)'\\')