summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authorhawk@chromium.org <hawk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 20:57:03 +0000
committerhawk@chromium.org <hawk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-13 20:57:03 +0000
commite4295f1ed20adbceef9e24ab78bb604728a8ce42 (patch)
tree8150b092f566c63fe7b64a39301d653de8e1d308 /net/socket
parent9af506084e92488285a4f213d35784449979bb97 (diff)
downloadchromium_src-e4295f1ed20adbceef9e24ab78bb604728a8ce42.zip
chromium_src-e4295f1ed20adbceef9e24ab78bb604728a8ce42.tar.gz
chromium_src-e4295f1ed20adbceef9e24ab78bb604728a8ce42.tar.bz2
Remember the server certificate on Mac OS X even if the handshake fails
BUG=23569 TEST=https://rbacpro.sftcomp.ru/ should report "invalid certificate" rather than crash Review URL: http://codereview.chromium.org/270034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28883 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r--net/socket/ssl_client_socket_mac.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/socket/ssl_client_socket_mac.cc b/net/socket/ssl_client_socket_mac.cc
index 0f83ad7..1a0c6a5 100644
--- a/net/socket/ssl_client_socket_mac.cc
+++ b/net/socket/ssl_client_socket_mac.cc
@@ -507,6 +507,8 @@ bool SSLClientSocketMac::SetSendBufferSize(int32 size) {
void SSLClientSocketMac::GetSSLInfo(SSLInfo* ssl_info) {
ssl_info->Reset();
+ if (!server_cert_)
+ return;
// set cert
ssl_info->cert = server_cert_;
@@ -604,8 +606,9 @@ int SSLClientSocketMac::DoHandshakeStart() {
if (status == errSSLWouldBlock)
next_state_ = STATE_HANDSHAKE_START;
+ server_cert_ = GetServerCert(ssl_context_);
+
if (status == noErr || status == errSSLServerAuthCompletedFlag) {
- server_cert_ = GetServerCert(ssl_context_);
if (!server_cert_)
return ERR_UNEXPECTED;