Alexandre Julliard : ntdll: Fixed file system name comparison on *BSD.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 29 07:48:13 CDT 2007


Module: wine
Branch: master
Commit: 8765a0da83acad6963693e915010f49c1b820b9a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8765a0da83acad6963693e915010f49c1b820b9a

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Aug 29 12:02:13 2007 +0200

ntdll: Fixed file system name comparison on *BSD.

---

 dlls/ntdll/file.c |   19 +++++++------------
 server/fd.c       |    6 ++----
 2 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index e84490f..c7004d7 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1736,24 +1736,21 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC
 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__APPLE__)
 /* helper for FILE_GetDeviceInfo to hide some platform differences in fstatfs */
 static inline void get_device_info_fstatfs( FILE_FS_DEVICE_INFORMATION *info, const char *fstypename,
-                                            size_t fstypesize, unsigned int flags )
+                                            unsigned int flags )
 {
-    if (!strncmp("cd9660", fstypename, fstypesize) ||
-        !strncmp("udf", fstypename, fstypesize))
+    if (!strcmp("cd9660", fstypename) || !strcmp("udf", fstypename))
     {
         info->DeviceType = FILE_DEVICE_CD_ROM_FILE_SYSTEM;
         /* Don't assume read-only, let the mount options set it below */
         info->Characteristics |= FILE_REMOVABLE_MEDIA;
     }
-    else if (!strncmp("nfs", fstypename, fstypesize) ||
-             !strncmp("nwfs", fstypename, fstypesize) ||
-             !strncmp("smbfs", fstypename, fstypesize) ||
-             !strncmp("afpfs", fstypename, fstypesize))
+    else if (!strcmp("nfs", fstypename) || !strcmp("nwfs", fstypename) ||
+             !strcmp("smbfs", fstypename) || !strcmp("afpfs", fstypename))
     {
         info->DeviceType = FILE_DEVICE_NETWORK_FILE_SYSTEM;
         info->Characteristics |= FILE_REMOTE_DEVICE;
     }
-    else if (!strncmp("procfs", fstypename, fstypesize))
+    else if (!strcmp("procfs", fstypename))
         info->DeviceType = FILE_DEVICE_VIRTUAL_DISK;
     else
         info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM;
@@ -1849,16 +1846,14 @@ static NTSTATUS get_device_info( int fd, FILE_FS_DEVICE_INFORMATION *info )
         if (fstatfs( fd, &stfs ) < 0)
             info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM;
         else
-            get_device_info_fstatfs( info, stfs.f_fstypename,
-                                     sizeof(stfs.f_fstypename), stfs.f_flags );
+            get_device_info_fstatfs( info, stfs.f_fstypename, stfs.f_flags );
 #elif defined(__NetBSD__)
         struct statvfs stfs;
 
         if (fstatvfs( fd, &stfs) < 0)
             info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM;
         else
-            get_device_info_fstatfs( info, stfs.f_fstypename,
-                                     sizeof(stfs.f_fstypename), stfs.f_flag );
+            get_device_info_fstatfs( info, stfs.f_fstypename, stfs.f_flag );
 #elif defined(sun)
         /* Use dkio to work out device types */
         {
diff --git a/server/fd.c b/server/fd.c
index cf3a306..31e1c9f 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -802,14 +802,12 @@ static int is_device_removable( dev_t dev, int unix_fd )
     struct statfs stfs;
 
     if (fstatfs( unix_fd, &stfs ) == -1) return 0;
-    return (!strncmp("cd9660", stfs.f_fstypename, sizeof(stfs.f_fstypename)) ||
-            !strncmp("udf", stfs.f_fstypename, sizeof(stfs.f_fstypename)));
+    return (!strcmp("cd9660", stfs.f_fstypename) || !strcmp("udf", stfs.f_fstypename));
 #elif defined(__NetBSD__)
     struct statvfs stfs;
 
     if (fstatvfs( unix_fd, &stfs ) == -1) return 0;
-    return (!strncmp("cd9660", stfs.f_fstypename, sizeof(stfs.f_fstypename)) ||
-            !strncmp("udf", stfs.f_fstypename, sizeof(stfs.f_fstypename)));
+    return (!strcmp("cd9660", stfs.f_fstypename) || !strcmp("udf", stfs.f_fstypename));
 #elif defined(sun)
 # include <sys/dkio.h>
 # include <sys/vtoc.h>




More information about the wine-cvs mailing list