summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-10 22:23:53 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-11-10 22:23:53 +0000
commit5756275202f1265e58a2fbc9fdb020a5fe99739a (patch)
tree2fb42dbbd9ac0cc4375ec9851dfbebc902b7c95b /libjava/java
parent467446aefa92bc79cb02e2bf8f313fcda742805d (diff)
downloadppe42-gcc-5756275202f1265e58a2fbc9fdb020a5fe99739a.tar.gz
ppe42-gcc-5756275202f1265e58a2fbc9fdb020a5fe99739a.zip
* java/io/natFileDescriptorWin32.cc (read): Handle case where
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
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/io/natFileDescriptorPosix.cc5
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc4
2 files changed, 9 insertions, 0 deletions
diff --git a/libjava/java/io/natFileDescriptorPosix.cc b/libjava/java/io/natFileDescriptorPosix.cc
index 9929c3021f7..80e6bad97ae 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 e004057ef91..4b157f7042c 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;
OpenPOWER on IntegriCloud