Use `bssl::UniquePtr` to own the `SSL_CREDENTIAL` in `SetCertChain`
This does the exact same thing, but is a little tidier.
PiperOrigin-RevId: 761249937
diff --git a/quiche/quic/core/crypto/tls_server_connection.cc b/quiche/quic/core/crypto/tls_server_connection.cc
index 2b7ddc7..80a3aa7 100644
--- a/quiche/quic/core/crypto/tls_server_connection.cc
+++ b/quiche/quic/core/crypto/tls_server_connection.cc
@@ -78,28 +78,28 @@
const std::string& trust_anchor_id) {
if (GetQuicReloadableFlag(enable_tls_trust_anchor_ids)) {
QUIC_RELOADABLE_FLAG_COUNT_N(enable_tls_trust_anchor_ids, 1, 2);
- SSL_CREDENTIAL* credential = SSL_CREDENTIAL_new_x509();
- SSL_CREDENTIAL_set1_cert_chain(credential, cert_chain.data(),
+ bssl::UniquePtr<SSL_CREDENTIAL> credential(SSL_CREDENTIAL_new_x509());
+ SSL_CREDENTIAL_set1_cert_chain(credential.get(), cert_chain.data(),
cert_chain.size());
if (ssl_config().signing_algorithm_prefs.has_value()) {
SSL_CREDENTIAL_set1_signing_algorithm_prefs(
- credential, ssl_config().signing_algorithm_prefs->data(),
+ credential.get(), ssl_config().signing_algorithm_prefs->data(),
ssl_config().signing_algorithm_prefs->size());
}
SSL_CREDENTIAL_set_private_key_method(
- credential, &TlsServerConnection::kPrivateKeyMethod);
+ credential.get(), &TlsServerConnection::kPrivateKeyMethod);
#if defined(BORINGSSL_API_VERSION) && BORINGSSL_API_VERSION >= 36
if (!trust_anchor_id.empty()) {
SSL_CREDENTIAL_set1_trust_anchor_id(
- credential, reinterpret_cast<const uint8_t*>(trust_anchor_id.data()),
+ credential.get(),
+ reinterpret_cast<const uint8_t*>(trust_anchor_id.data()),
trust_anchor_id.size());
- SSL_CREDENTIAL_set_must_match_issuer(credential, 1);
+ SSL_CREDENTIAL_set_must_match_issuer(credential.get(), 1);
}
#else
(void)trust_anchor_id; // Suppress unused parameter error.
#endif
- SSL_add1_credential(ssl(), credential);
- SSL_CREDENTIAL_free(credential);
+ SSL_add1_credential(ssl(), credential.get());
} else {
SSL_set_chain_and_key(ssl(), cert_chain.data(), cert_chain.size(), nullptr,
&TlsServerConnection::kPrivateKeyMethod);