diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-10 22:23:53 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-10 22:23:53 +0000 |
| commit | 5756275202f1265e58a2fbc9fdb020a5fe99739a (patch) | |
| tree | 2fb42dbbd9ac0cc4375ec9851dfbebc902b7c95b | |
| parent | 467446aefa92bc79cb02e2bf8f313fcda742805d (diff) | |
| download | ppe42-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
| -rw-r--r-- | libjava/ChangeLog | 5 | ||||
| -rw-r--r-- | libjava/java/io/natFileDescriptorPosix.cc | 5 | ||||
| -rw-r--r-- | libjava/java/io/natFileDescriptorWin32.cc | 4 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 891c9ace1dd..a05b2cd5eff 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 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; |

