diff options
Diffstat (limited to 'libjava/java/io/natFileDescriptorPosix.cc')
-rw-r--r-- | libjava/java/io/natFileDescriptorPosix.cc | 5 |
1 files changed, 5 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) |