summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-25 02:05:48 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-25 02:05:48 +0000
commit6c293a7baba7aa1d998e2680492246f239a7015d (patch)
treef0a33c09efd57c698c28c188f6c12c399a308c90 /net/socket
parentfbf59d6e27560cd63952c79ae18216fda42d690f (diff)
downloadchromium_src-6c293a7baba7aa1d998e2680492246f239a7015d.zip
chromium_src-6c293a7baba7aa1d998e2680492246f239a7015d.tar.gz
chromium_src-6c293a7baba7aa1d998e2680492246f239a7015d.tar.bz2
Fix a potential CFRelease(NULL).
It would happen if CreateClientCertificateChain() returns NULL. Found by the clang static analyzer. Probably doesn't happen in practice. BUG=none TEST=none Review URL: http://codereview.chromium.org/8308009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107041 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r--net/socket/ssl_client_socket_nss.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
index bd7117d..1273940 100644
--- a/net/socket/ssl_client_socket_nss.cc
+++ b/net/socket/ssl_client_socket_nss.cc
@@ -2383,8 +2383,11 @@ SECStatus SSLClientSocketNSS::PlatformClientAuthHandler(
}
}
if (os_error == noErr) {
- int cert_count = CFArrayGetCount(chain);
- CFRelease(chain);
+ int cert_count = 0;
+ if (chain) {
+ cert_count = CFArrayGetCount(chain);
+ CFRelease(chain);
+ }
that->net_log_.AddEvent(NetLog::TYPE_SSL_CLIENT_CERT_PROVIDED,
make_scoped_refptr(new NetLogIntegerParameter("cert_count",
cert_count)));