Index: net/cert/nss_cert_database.cc |
diff --git a/net/cert/nss_cert_database.cc b/net/cert/nss_cert_database.cc |
index 4490daf5b53b58fbfc32909a5fe6b7b030bcd2cb..2b90e008f29df86f8ee2a46d08e6fb6f57c9ca39 100644 |
--- a/net/cert/nss_cert_database.cc |
+++ b/net/cert/nss_cert_database.cc |
@@ -420,8 +420,13 @@ void NSSCertDatabase::ListCertsImpl(crypto::ScopedPK11Slot slot, |
CERTCertListNode* node; |
for (node = CERT_LIST_HEAD(cert_list); !CERT_LIST_END(node, cert_list); |
node = CERT_LIST_NEXT(node)) { |
- certs->push_back(X509Certificate::CreateFromHandle( |
- node->cert, X509Certificate::OSCertHandles())); |
+ scoped_refptr<X509Certificate> cert = X509Certificate::CreateFromHandle( |
+ node->cert, X509Certificate::OSCertHandles()); |
+ if (!cert) { |
+ LOG(ERROR) << "X509Certificate::CreateFromHandle failed"; |
+ continue; |
+ } |
+ certs->push_back(cert); |
} |
CERT_DestroyCertList(cert_list); |
} |