aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-11-10 22:23:53 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-11-10 22:23:53 +0000
commita6b5bd3b6bae362a975ac28a00c0b9fe01c3ebf8 (patch)
tree2fb42dbbd9ac0cc4375ec9851dfbebc902b7c95b /libjava
parentf18590c6209457736eda5e66c76c33e3f92532fd (diff)
downloadgcc-a6b5bd3b6bae362a975ac28a00c0b9fe01c3ebf8.zip
gcc-a6b5bd3b6bae362a975ac28a00c0b9fe01c3ebf8.tar.gz
gcc-a6b5bd3b6bae362a975ac28a00c0b9fe01c3ebf8.tar.bz2
natFileDescriptorWin32.cc (read): Handle case where count is 0.
* 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
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/io/natFileDescriptorPosix.cc5
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc4
3 files changed, 14 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 891c9ac..a05b2cd 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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,
diff --git a/libjava/java/io/natFileDescriptorPosix.cc b/libjava/java/io/natFileDescriptorPosix.cc
index 9929c30..80e6bad 100644
--- a/libjava/java/io/natFileDescriptorPosix.cc
+++ b/libjava/java/io/natFileDescriptorPosix.cc
@@ -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)
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
index e004057..4b157f7 100644
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ b/libjava/java/io/natFileDescriptorWin32.cc
@@ -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;