diff options
-rw-r--r-- | security/nss/lib/ssl/ssl3con.c | 8 |
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; } |