Skip to content

Commit

Permalink
Bug 676729: SSL_ForceHandshake does not send the saved write data in
Browse files Browse the repository at this point in the history
ss->pendingBuf.  r=rrelyea.
  • Loading branch information
wtc%google.com committed Oct 30, 2011
1 parent f0f6b37 commit 48d1b77
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion security/nss/lib/ssl/sslsecur.c
Expand Up @@ -392,6 +392,18 @@ SSL_ForceHandshake(PRFileDesc *fd)
if (!ss->opt.useSecurity)
return SECSuccess;

if (!ssl_SocketIsBlocking(ss)) {
ssl_GetXmitBufLock(ss);
if (ss->pendingBuf.len != 0) {
rv = ssl_SendSavedWriteData(ss);
if ((rv < 0) && (PORT_GetError() != PR_WOULD_BLOCK_ERROR)) {
ssl_ReleaseXmitBufLock(ss);
return SECFailure;
}
}
ssl_ReleaseXmitBufLock(ss);
}

ssl_Get1stHandshakeLock(ss);

if (ss->version >= SSL_LIBRARY_VERSION_3_0) {
Expand Down Expand Up @@ -1141,7 +1153,6 @@ ssl_SecureRecv(sslSocket *ss, unsigned char *buf, int len, int flags)
ssl_ReleaseXmitBufLock(ss);
return SECFailure;
}
/* XXX short write? */
}
ssl_ReleaseXmitBufLock(ss);
}
Expand Down

0 comments on commit 48d1b77

Please sign in to comment.