summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--security/nss/lib/ssl/ssl3con.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/security/nss/lib/ssl/ssl3con.c b/security/nss/lib/ssl/ssl3con.c
index a80da28fe..be252d7d6 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -1571,7 +1571,11 @@ ssl3_HandleNoCertificate(sslSocket *ss)
SSL3_SendAlert(ss, alert_fatal, bad_certificate);
lower = ss->fd->lower;
+#ifdef _WIN32
+ lower->methods->shutdown(lower, PR_SHUTDOWN_SEND);
+#else
lower->methods->shutdown(lower, PR_SHUTDOWN_BOTH);
+#endif
PORT_SetError(SSL_ERROR_NO_CERTIFICATE);
return SECFailure;
}
@@ -6309,6 +6313,10 @@ ssl3_HandleCertificate(sslSocket *ss, SSL3Opaque *b, PRUint32 length)
/* This is TLS's version of a no_certificate alert. */
/* I'm a server. I've requested a client cert. He hasn't got one. */
rv = ssl3_HandleNoCertificate(ss);
+ if (rv != SECSuccess) {
+ errCode = PORT_GetError();
+ goto loser;
+ }
goto cert_block;
}