Jeff Zaroyko : wineserver: Don' t use O_CREAT and O_EXCL when attempting to open directories.

Alexandre Julliard julliard at winehq.org
Wed Dec 3 05:56:36 CST 2008


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

Author: Jeff Zaroyko <jeffz at jeffz.name>
Date:   Wed Dec  3 17:30:54 2008 +1100

wineserver: Don't use O_CREAT and O_EXCL when attempting to open directories.

---

 dlls/kernel32/tests/file.c |    2 +-
 server/fd.c                |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index 56055c0..b045025 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -783,7 +783,7 @@ static void test_CreateFileW(void)
     ok(ret == TRUE, "couldn't create temporary directory\n");
     hFile = CreateFileW(filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 			OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, NULL);
-    todo_wine ok(hFile != INVALID_HANDLE_VALUE,
+    ok(hFile != INVALID_HANDLE_VALUE,
        "expected CreateFile to succeed on existing directory, error: %d\n", GetLastError());
     CloseHandle(hFile);
     ret = RemoveDirectoryW(filename);
diff --git a/server/fd.c b/server/fd.c
index 0d33e77..f7716d1 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -1582,7 +1582,7 @@ struct fd *open_fd( const char *name, int flags, mode_t *mode, unsigned int acce
         /* if we tried to open a directory for write access, retry read-only */
         if (errno != EISDIR ||
             !(access & FILE_UNIX_WRITE_ACCESS) ||
-            (fd->unix_fd = open( name, O_RDONLY | (flags & ~O_TRUNC), *mode )) == -1)
+            (fd->unix_fd = open( name, O_RDONLY | (flags & ~(O_TRUNC | O_CREAT | O_EXCL)), *mode )) == -1)
         {
             file_set_error();
             goto error;




More information about the wine-cvs mailing list