summaryrefslogtreecommitdiffstats
path: root/net/base/ssl_client_socket.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/ssl_client_socket.cc')
-rw-r--r--net/base/ssl_client_socket.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/base/ssl_client_socket.cc b/net/base/ssl_client_socket.cc
index dbf28da..bd1bef6 100644
--- a/net/base/ssl_client_socket.cc
+++ b/net/base/ssl_client_socket.cc
@@ -607,6 +607,10 @@ int SSLClientSocket::DoPayloadReadComplete(int result) {
}
// TODO(wtc): need to handle SEC_I_RENEGOTIATE.
DCHECK(status == SEC_E_OK);
+ // If we didn't read enough to be able to decrypt anything, don't report 0
+ // bytes read, which would be interpreted as EOF. Go back to read more.
+ if (len == 0)
+ next_state_ = STATE_PAYLOAD_READ;
return len;
}