| Index: net/socket/ssl_client_socket_mac.cc
|
| ===================================================================
|
| --- net/socket/ssl_client_socket_mac.cc (revision 23576)
|
| +++ net/socket/ssl_client_socket_mac.cc (working copy)
|
| @@ -92,7 +92,6 @@
|
| switch (status) {
|
| case errSSLWouldBlock:
|
| return ERR_IO_PENDING;
|
| - case errSSLIllegalParam:
|
| case errSSLBadCipherSuite:
|
| case errSSLBadConfiguration:
|
| return ERR_INVALID_ARGUMENT;
|
| @@ -105,6 +104,8 @@
|
| case errSSLInternal:
|
| case errSSLCrypto:
|
| case errSSLFatalAlert:
|
| + case errSSLIllegalParam: // Received an illegal_parameter alert.
|
| + case errSSLPeerUnexpectedMsg: // Received an unexpected_message alert.
|
| case errSSLProtocol:
|
| return ERR_SSL_PROTOCOL_ERROR;
|
| case errSSLHostNameMismatch:
|
| @@ -246,7 +247,8 @@
|
| X509Certificate* GetServerCert(SSLContextRef ssl_context) {
|
| CFArrayRef certs;
|
| OSStatus status = SSLCopyPeerCertificates(ssl_context, &certs);
|
| - if (status != noErr)
|
| + // SSLCopyPeerCertificates may succeed but return a null |certs|.
|
| + if (status != noErr || !certs)
|
| return NULL;
|
|
|
| DCHECK_GT(CFArrayGetCount(certs), 0);
|
| @@ -529,7 +531,7 @@
|
| }
|
| }
|
| }
|
| - } else if (IsCertStatusError(net_error)) {
|
| + } else if (IsCertificateError(net_error)) {
|
| server_cert_ = GetServerCert(ssl_context_);
|
| DCHECK(server_cert_);
|
| server_cert_status_ |= MapNetErrorToCertStatus(net_error);
|
|
|