diff options
author | Tom Tromey <tromey@redhat.com> | 2002-11-10 22:23:53 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-11-10 22:23:53 +0000 |
commit | a6b5bd3b6bae362a975ac28a00c0b9fe01c3ebf8 (patch) | |
tree | 2fb42dbbd9ac0cc4375ec9851dfbebc902b7c95b /libjava/java | |
parent | f18590c6209457736eda5e66c76c33e3f92532fd (diff) | |
download | gcc-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/java')
-rw-r--r-- | libjava/java/io/natFileDescriptorPosix.cc | 5 | ||||
-rw-r--r-- | libjava/java/io/natFileDescriptorWin32.cc | 4 |
2 files changed, 9 insertions, 0 deletions
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; |