natFileDescriptorWin32.cc (read): Handle case where count is 0.
authorTom Tromey <tromey@redhat.com>
Sun, 10 Nov 2002 22:23:53 +0000 (22:23 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Sun, 10 Nov 2002 22:23:53 +0000 (22:23 +0000)
* java/io/natFileDescriptorWin32.cc (read): Handle case where
count is 0.
* java/io/natFileDescriptorPosix.cc (read): Handle case where
count is 0.

From-SVN: r58997

libjava/ChangeLog
libjava/java/io/natFileDescriptorPosix.cc
libjava/java/io/natFileDescriptorWin32.cc

index 891c9ace1dd5d700fdc3e007745131d659be1708..a05b2cd5effbc802f0f81c42ac82b46d3469dec7 100644 (file)
@@ -1,5 +1,10 @@
 2002-11-10  Tom Tromey  <tromey@redhat.com>
 
+       * java/io/natFileDescriptorWin32.cc (read): Handle case where
+       count is 0.
+       * java/io/natFileDescriptorPosix.cc (read): Handle case where
+       count is 0.
+
        * java/io/Externalizable.java, java/io/FilePermission.java,
        java/io/ObjectStreamConstants.java, java/io/Serializable.java,
        java/io/SerializablePermission.java, java/text/Format.java,
index 9929c3021f74f76c5fdcb26c5fd4c31382fca4db..80e6bad97ae9ec180a20d45c2bfcceae90a54cff 100644 (file)
@@ -293,6 +293,11 @@ java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
   jsize bsize = JvGetArrayLength (buffer);
   if (offset < 0 || count < 0 || offset + count > bsize)
     throw new java::lang::ArrayIndexOutOfBoundsException;
+
+  // Must return 0 if an attempt is made to read 0 bytes.
+  if (count == 0)
+    return 0;
+
   jbyte *bytes = elements (buffer) + offset;
   int r = ::read (fd, bytes, count);
   if (r == 0)
index e004057ef9140e3339f01c5a7c589139a504965e..4b157f7042c9b8f0df5d315113c00fed86857355 100644 (file)
@@ -305,6 +305,10 @@ java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
   if (offset < 0 || count < 0 || offset + count > bsize)
     throw new java::lang::ArrayIndexOutOfBoundsException;
 
+  // Must return 0 if an attempt is made to read 0 bytes.
+  if (count == 0)
+    return 0;
+
   jbyte *bytes = elements (buffer) + offset;
 
   DWORD read;