From fa0fdc47a6c1fd66c153feb349b716486520a3ca Mon Sep 17 00:00:00 2001 From: manojampalam Date: Tue, 22 Mar 2016 21:16:13 -0700 Subject: [PATCH] Fix for ReadFileEx synchronously failing with EOF error on 2012 --- contrib/win32/win32compat/fileio.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/contrib/win32/win32compat/fileio.c b/contrib/win32/win32compat/fileio.c index 3d0dbfc..e14edbd 100644 --- a/contrib/win32/win32compat/fileio.c +++ b/contrib/win32/win32compat/fileio.c @@ -357,7 +357,14 @@ fileio_read(struct w32_io* pio, void *dst, unsigned int max) { if ((FILETYPE(pio) == FILE_TYPE_PIPE) && (errno == ERROR_NEGATIVE_SEEK)) { /* write end of the pipe closed */ - debug2("read - no more data, io:%p", pio); + debug("read - no more data, io:%p", pio); + errno = 0; + return 0; + } + /* on W2012, ReadFileEx on file throws a synchronous EOF error*/ + else if ((FILETYPE(pio) == FILE_TYPE_DISK) + && (errno == ERROR_HANDLE_EOF)) { + debug("read - no more data, io:%p", pio); errno = 0; return 0; }