From 592acf47e751ce300293ca1a657b428f244f2ae6 Mon Sep 17 00:00:00 2001 From: Jeff Zaroyko Date: Wed, 3 Dec 2008 17:30:54 +1100 Subject: wineserver: don't use O_CREAT and O_EXCL when attempting to open directories Also remove a todo_wine for a corresponding test in kernel32 which now passes. --- 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..34085fe 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; -- 1.5.4.3