aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/net/natPlainSocketImplPosix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/net/natPlainSocketImplPosix.cc')
-rw-r--r--libjava/gnu/java/net/natPlainSocketImplPosix.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/libjava/gnu/java/net/natPlainSocketImplPosix.cc b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
index 46b56bb6efb..9348378d30f 100644
--- a/libjava/gnu/java/net/natPlainSocketImplPosix.cc
+++ b/libjava/gnu/java/net/natPlainSocketImplPosix.cc
@@ -405,6 +405,11 @@ gnu::java::net::PlainSocketImpl$SocketInputStream::read(jbyteArray buffer, jint
static jint
read_helper (jint native_fd, jint timeout, jbyte *bytes, jint count)
{
+ // If zero bytes were requested, short circuit so that recv
+ // doesn't signal EOF.
+ if (count == 0)
+ return 0;
+
// Do timeouts via select.
if (timeout > 0 && native_fd >= 0 && native_fd < FD_SETSIZE)
{