From b9a80ae21eb4e3631382f080b64d33df4a8d5af8 Mon Sep 17 00:00:00 2001
From: Martin Stjernholm <mast@lysator.liu.se>
Date: Tue, 16 Sep 2003 18:45:36 +0200
Subject: [PATCH] read(2) with length 0 is a no-op on Unix, but ReadFile can
 block on NT in that case.

Rev: src/fdlib.c:1.65
---
 src/fdlib.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/fdlib.c b/src/fdlib.c
index ae1f423d2e..28e35f7bd3 100644
--- a/src/fdlib.c
+++ b/src/fdlib.c
@@ -2,7 +2,7 @@
 || This file is part of Pike. For copyright information see COPYRIGHT.
 || Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 || for more information.
-|| $Id: fdlib.c,v 1.64 2003/08/20 11:58:53 grubba Exp $
+|| $Id: fdlib.c,v 1.65 2003/09/16 16:45:36 mast Exp $
 */
 
 #include "global.h"
@@ -10,7 +10,7 @@
 #include "pike_error.h"
 #include <math.h>
 
-RCSID("$Id: fdlib.c,v 1.64 2003/08/20 11:58:53 grubba Exp $");
+RCSID("$Id: fdlib.c,v 1.65 2003/09/16 16:45:36 mast Exp $");
 
 #ifdef HAVE_WINSOCK_H
 
@@ -781,9 +781,9 @@ PMOD_EXPORT ptrdiff_t debug_fd_read(FD fd, void *to, ptrdiff_t len)
     case FD_FILE:
     case FD_PIPE:
       ret=0;
-      if(!ReadFile(handle, to,
-		   DO_NOT_WARN((DWORD)len),
-		   &ret,0) && ret<=0)
+      if(len && !ReadFile(handle, to,
+			  DO_NOT_WARN((DWORD)len),
+			  &ret,0) && ret<=0)
       {
 	errno=GetLastError();
 	switch(errno)
-- 
GitLab