Avoid blocking on non-dirs in DOSFS_OpenDir_VFAT
Michal Janusz Miroslaw
M.Miroslaw at elka.pw.edu.pl
Mon Apr 14 14:54:23 CDT 2003
O_DIRECTORY is Linux-specific. As is VFAT_IOCTL_READDIR_BOTH anyway ...
ChangeLog:
On Linux: avoid blocking in DOSFS_OpenDir_VFAT if specified path
is not a directory
Index: files/dos_fs.c
===================================================================
RCS file: /home/wine/wine/files/dos_fs.c,v
retrieving revision 1.129
diff -u -r1.129 dos_fs.c
--- files/dos_fs.c 4 Apr 2003 22:05:10 -0000 1.129
+++ files/dos_fs.c 14 Apr 2003 19:50:23 -0000
@@ -75,6 +75,11 @@
#define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, KERNEL_DIRENT [2] )
+/* To avoid blocking on non-directories in DOSFS_OpenDir_VFAT*/
+#ifndef O_DIRECTORY
+# define O_DIRECTORY 0200000 /* must be directory */
+#endif
+
#else /* linux */
#undef VFAT_IOCTL_READDIR_BOTH /* just in case... */
#endif /* linux */
@@ -461,7 +466,7 @@
{
#ifdef VFAT_IOCTL_READDIR_BOTH
KERNEL_DIRENT de[2];
- int fd = open( unix_path, O_RDONLY );
+ int fd = open( unix_path, O_RDONLY|O_DIRECTORY );
BOOL r = TRUE;
/* Check if the VFAT ioctl is supported on this directory */
More information about the wine-patches
mailing list