about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/posix/preadv.c2
-rw-r--r--sysdeps/posix/readv.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4b4bbdc63b..d30e6b3859 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-04-17  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/posix/preadv.c: Reading of zero bytes is no error.
+	* sysdeps/posix/readv.c: Likewise.
+	Reported by Markus Armbruster <armbru@redhat.com>.
+
 	* malloc/hooks.c (top_check): Force hook value into register.
 
 2009-04-16  Samuel Thibault  <samuel.thibault@ens-lyon.org>
diff --git a/sysdeps/posix/preadv.c b/sysdeps/posix/preadv.c
index e697604c19..3d975226cf 100644
--- a/sysdeps/posix/preadv.c
+++ b/sysdeps/posix/preadv.c
@@ -83,7 +83,7 @@ PREADV (int fd, const struct iovec *vector, int count, OFF_T offset)
 
   /* Read the data.  */
   ssize_t bytes_read = PREAD (fd, buffer, bytes, offset);
-  if (bytes_read <= 0)
+  if (bytes_read < 0)
     return -1;
 
   /* Copy the data from BUFFER into the memory specified by VECTOR.  */
diff --git a/sysdeps/posix/readv.c b/sysdeps/posix/readv.c
index 50bcc91315..6f16b9d946 100644
--- a/sysdeps/posix/readv.c
+++ b/sysdeps/posix/readv.c
@@ -70,7 +70,7 @@ __libc_readv (int fd, const struct iovec *vector, int count)
 
   /* Read the data.  */
   ssize_t bytes_read = __read (fd, buffer, bytes);
-  if (bytes_read <= 0)
+  if (bytes_read < 0)
     return -1;
 
   /* Copy the data from BUFFER into the memory specified by VECTOR.  */