summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-24 23:23:10 +0000
committerrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-24 23:23:10 +0000
commit0452c6e3ee2dcaa67b976398e248a97c59deeede (patch)
tree4f0fe1244bc60328293f2534a6d4c63f2dedc281 /net
parentf8e141140abad9059828952fbca013dcf867300d (diff)
downloadchromium_src-0452c6e3ee2dcaa67b976398e248a97c59deeede.zip
chromium_src-0452c6e3ee2dcaa67b976398e248a97c59deeede.tar.gz
chromium_src-0452c6e3ee2dcaa67b976398e248a97c59deeede.tar.bz2
X509CertificateTest.IntermediateCertificates leaks several native certificate handles during the execution of the test.
R=wtc BUG=none TEST=X509CertificateTest.IntermediateCertificates Review URL: http://codereview.chromium.org/2809024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50781 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/x509_certificate_unittest.cc53
1 files changed, 29 insertions, 24 deletions
diff --git a/net/base/x509_certificate_unittest.cc b/net/base/x509_certificate_unittest.cc
index 63ddd92..0ea240f 100644
--- a/net/base/x509_certificate_unittest.cc
+++ b/net/base/x509_certificate_unittest.cc
@@ -464,32 +464,38 @@ TEST(X509CertificateTest, Policy) {
#if defined(OS_MACOSX) || defined(OS_WIN)
TEST(X509CertificateTest, IntermediateCertificates) {
- X509Certificate::OSCertHandle handle1, handle2, handle3, handle4;
+ scoped_refptr<X509Certificate> webkit_cert =
+ X509Certificate::CreateFromBytes(
+ reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
+
+ scoped_refptr<X509Certificate> thawte_cert =
+ X509Certificate::CreateFromBytes(
+ reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der));
+
+ scoped_refptr<X509Certificate> paypal_cert =
+ X509Certificate::CreateFromBytes(
+ reinterpret_cast<const char*>(paypal_null_der),
+ sizeof(paypal_null_der));
+ X509Certificate::OSCertHandle google_handle;
// Create object with no intermediates:
- handle1 = X509Certificate::CreateOSCertHandleFromBytes(
+ google_handle = X509Certificate::CreateOSCertHandleFromBytes(
reinterpret_cast<const char*>(google_der), sizeof(google_der));
X509Certificate::OSCertHandles intermediates1;
scoped_refptr<X509Certificate> cert1;
- cert1 = X509Certificate::CreateFromHandle(handle1,
- X509Certificate::SOURCE_FROM_NETWORK,
- intermediates1);
+ cert1 = X509Certificate::CreateFromHandle(
+ google_handle, X509Certificate::SOURCE_FROM_NETWORK, intermediates1);
EXPECT_TRUE(cert1->HasIntermediateCertificates(intermediates1));
- handle2 = X509Certificate::CreateOSCertHandleFromBytes(
- reinterpret_cast<const char*>(webkit_der), sizeof(webkit_der));
- EXPECT_FALSE(cert1->HasIntermediateCertificate(handle2));
+ EXPECT_FALSE(cert1->HasIntermediateCertificate(
+ webkit_cert->os_cert_handle()));
// Create object with 2 intermediates:
- handle1 = X509Certificate::CreateOSCertHandleFromBytes(
- reinterpret_cast<const char*>(google_der), sizeof(google_der));
X509Certificate::OSCertHandles intermediates2;
- handle3 = X509Certificate::CreateOSCertHandleFromBytes(
- reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der));
- intermediates2.push_back(handle2);
- intermediates2.push_back(handle3);
+ intermediates2.push_back(webkit_cert->os_cert_handle());
+ intermediates2.push_back(thawte_cert->os_cert_handle());
scoped_refptr<X509Certificate> cert2;
cert2 = X509Certificate::CreateFromHandle(
- X509Certificate::DupOSCertHandle(handle1),
+ X509Certificate::DupOSCertHandle(google_handle),
X509Certificate::SOURCE_FROM_NETWORK,
intermediates2);
@@ -497,20 +503,19 @@ TEST(X509CertificateTest, IntermediateCertificates) {
EXPECT_NE(cert1, cert2);
// Verify it has all the intermediates:
- EXPECT_TRUE(cert2->HasIntermediateCertificate(handle2));
- EXPECT_TRUE(cert2->HasIntermediateCertificate(handle3));
- handle4 = X509Certificate::CreateOSCertHandleFromBytes(
- reinterpret_cast<const char*>(paypal_null_der), sizeof(paypal_null_der));
- EXPECT_FALSE(cert2->HasIntermediateCertificate(handle4));
+ EXPECT_TRUE(cert2->HasIntermediateCertificate(
+ webkit_cert->os_cert_handle()));
+ EXPECT_TRUE(cert2->HasIntermediateCertificate(
+ thawte_cert->os_cert_handle()));
+ EXPECT_FALSE(cert2->HasIntermediateCertificate(
+ paypal_cert->os_cert_handle()));
// Create object with 1 intermediate:
- handle3 = X509Certificate::CreateOSCertHandleFromBytes(
- reinterpret_cast<const char*>(thawte_der), sizeof(thawte_der));
X509Certificate::OSCertHandles intermediates3;
- intermediates2.push_back(handle3);
+ intermediates2.push_back(thawte_cert->os_cert_handle());
scoped_refptr<X509Certificate> cert3;
cert3 = X509Certificate::CreateFromHandle(
- X509Certificate::DupOSCertHandle(handle1),
+ X509Certificate::DupOSCertHandle(google_handle),
X509Certificate::SOURCE_FROM_NETWORK,
intermediates3);