Jacek Caban : kernel32: Don' t initialize Information of passed OVERLAPPED struct in ReadFile.

Alexandre Julliard julliard at winehq.org
Tue Jan 23 16:09:50 CST 2018


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jan 23 15:51:50 2018 +0100

kernel32: Don't initialize Information of passed OVERLAPPED struct in ReadFile.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/file.c       | 2 +-
 dlls/kernel32/tests/pipe.c | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index 45b4365..86e5431 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -442,8 +442,8 @@ BOOL WINAPI ReadFile( HANDLE hFile, LPVOID buffer, DWORD bytesToRead,
         io_status = (PIO_STATUS_BLOCK)overlapped;
         if (((ULONG_PTR)hEvent & 1) == 0) cvalue = overlapped;
     }
+    else io_status->Information = 0;
     io_status->u.Status = STATUS_PENDING;
-    io_status->Information = 0;
 
     status = NtReadFile(hFile, hEvent, NULL, cvalue, io_status, buffer, bytesToRead, poffset, NULL);
 
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index 23e7649..c4beb19 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -755,7 +755,6 @@ static void test_ReadFile(void)
     ok(!res && GetLastError() == ERROR_PIPE_NOT_CONNECTED, "ReadFile returned %x(%u)\n", res, GetLastError());
     ok(size == 0, "size = %u\n", size);
     ok(overlapped.Internal == STATUS_PENDING, "Internal = %lx\n", overlapped.Internal);
-    todo_wine
     ok(overlapped.InternalHigh == 0xdeadbeef, "InternalHigh = %lx\n", overlapped.InternalHigh);
 
     CloseHandle(server);
@@ -2628,7 +2627,6 @@ static void test_readfileex_pending(void)
     ok(GetLastError() == ERROR_IO_PENDING, "expected ERROR_IO_PENDING, got %d\n", GetLastError());
     ok(num_bytes == 0, "bytes %u\n", num_bytes);
     ok((NTSTATUS)overlapped.Internal == STATUS_PENDING, "expected STATUS_PENDING, got %#lx\n", overlapped.Internal);
-todo_wine
     ok(overlapped.InternalHigh == -1, "expected -1, got %lu\n", overlapped.InternalHigh);
 
     wait = WaitForSingleObject(event, 100);




More information about the wine-cvs mailing list