=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: ntdll: Fix NtFlushBuffersFile() for files with FILE_APPEND_DATA access.

Alexandre Julliard julliard at winehq.org
Fri Mar 3 14:20:36 CST 2017


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Fri Mar  3 16:21:08 2017 +0100

ntdll: Fix NtFlushBuffersFile() for files with FILE_APPEND_DATA access.

Fixes a regression introduced by commit
f7d40d45da7a1bc0accd58bca6d6da4e34861937.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/file.c       | 2 ++
 dlls/ntdll/tests/file.c | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 3f38c6f..e2cfe7f 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -3418,6 +3418,8 @@ NTSTATUS WINAPI NtFlushBuffersFile( HANDLE hFile, IO_STATUS_BLOCK* IoStatusBlock
     int fd, needs_close;
 
     ret = server_get_unix_fd( hFile, FILE_WRITE_DATA, &fd, &needs_close, &type, NULL );
+    if (ret == STATUS_ACCESS_DENIED)
+        ret = server_get_unix_fd( hFile, FILE_APPEND_DATA, &fd, &needs_close, &type, NULL );
 
     if (!ret && type == FD_TYPE_SERIAL)
     {
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index 5e7e1ee..09bf688 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -4441,7 +4441,6 @@ static void test_flush_buffers_file(void)
     ok(hfile != INVALID_HANDLE_VALUE, "could not open temp file, error %d.\n", GetLastError());
 
     status = pNtFlushBuffersFile(hfile, &io_status_block);
-    todo_wine
     ok(status == STATUS_SUCCESS, "expected STATUS_SUCCESS, got %#x.\n", status);
 
     CloseHandle(hfile);




More information about the wine-cvs mailing list