From 5d754fc958c163fefc3f6db301471ba20dd67f69 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Fri, 21 Dec 2001 19:16:33 +0000 Subject: [PATCH] Don't return from overlapped ReadFile on EAGAIN and other non-fatal errors. --- files/file.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/files/file.c b/files/file.c index b3ef8978fb4..e96e94ade9f 100644 --- a/files/file.c +++ b/files/file.c @@ -1455,8 +1455,14 @@ BOOL WINAPI ReadFile( HANDLE hFile, LPVOID buffer, DWORD bytesToRead, if(result<0) { - FILE_SetDosError(); - return FALSE; + if( (errno!=EAGAIN) && (errno!=EINTR) && + ((errno != EFAULT) || IsBadWritePtr( buffer, bytesToRead )) ) + { + FILE_SetDosError(); + return FALSE; + } + else + result = 0; } /* if we read enough to keep the app happy, then return now */