Browse Source

crypto: do not use pointers to std::vector

The pointer to std::vector is unnecessary, so replace it with standard
instance. Also, make the for() loop more readable by using actual type
instead of inferred - there is no readability benefit here from
obfuscating the type.

PR-URL: https://github.com/nodejs/node/pull/8334
Backport-PR-URL: https://github.com/nodejs/node/pull/11794
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
v6.x
Adam Majer 8 years ago
committed by Myles Borins
parent
commit
bbfd2e309b
No known key found for this signature in database GPG Key ID: 933B01F40B5CA946
  1. 10
      src/node_crypto.cc

10
src/node_crypto.cc

@ -127,7 +127,7 @@ const char* const root_certs[] = {
std::string extra_root_certs_file; // NOLINT(runtime/string) std::string extra_root_certs_file; // NOLINT(runtime/string)
X509_STORE* root_cert_store; X509_STORE* root_cert_store;
std::vector<X509*>* root_certs_vector; std::vector<X509*> root_certs_vector;
// Just to generate static methods // Just to generate static methods
template class SSLWrap<TLSWrap>; template class SSLWrap<TLSWrap>;
@ -694,9 +694,7 @@ static int X509_up_ref(X509* cert) {
static X509_STORE* NewRootCertStore() { static X509_STORE* NewRootCertStore() {
if (!root_certs_vector) { if (root_certs_vector.empty()) {
root_certs_vector = new std::vector<X509*>;
for (size_t i = 0; i < arraysize(root_certs); i++) { for (size_t i = 0; i < arraysize(root_certs); i++) {
BIO* bp = NodeBIO::NewFixed(root_certs[i], strlen(root_certs[i])); BIO* bp = NodeBIO::NewFixed(root_certs[i], strlen(root_certs[i]));
X509 *x509 = PEM_read_bio_X509(bp, nullptr, CryptoPemCallback, nullptr); X509 *x509 = PEM_read_bio_X509(bp, nullptr, CryptoPemCallback, nullptr);
@ -705,12 +703,12 @@ static X509_STORE* NewRootCertStore() {
// Parse errors from the built-in roots are fatal. // Parse errors from the built-in roots are fatal.
CHECK_NE(x509, nullptr); CHECK_NE(x509, nullptr);
root_certs_vector->push_back(x509); root_certs_vector.push_back(x509);
} }
} }
X509_STORE* store = X509_STORE_new(); X509_STORE* store = X509_STORE_new();
for (auto& cert : *root_certs_vector) { for (X509 *cert : root_certs_vector) {
X509_up_ref(cert); X509_up_ref(cert);
X509_STORE_add_cert(store, cert); X509_STORE_add_cert(store, cert);
} }

Loading…
Cancel
Save