* java/io/natFileDescriptorWin32.cc (read): Handle case where
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Nov 2002 22:23:53 +0000 (22:23 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 10 Nov 2002 22:23:53 +0000 (22:23 +0000)
count is 0.
* java/io/natFileDescriptorPosix.cc (read): Handle case where
count is 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58997 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 891c9ac..a05b2cd 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 9929c30..80e6bad 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 e004057..4b157f7 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;