Skip to content

Commit 97bc95e

Browse files
committed
src: improve error handling in CloneSSLCerts
If sk_X509_new() returns NULL or if sk_X509_push() fails, return instead of silently ignoring the error.
1 parent a5d27f4 commit 97bc95e

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/crypto/crypto_common.cc

+4-2
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,10 @@ constexpr auto GetCipherVersion = GetCipherValue<SSL_CIPHER_get_version>;
323323
StackOfX509 CloneSSLCerts(X509Pointer&& cert,
324324
const STACK_OF(X509)* const ssl_certs) {
325325
StackOfX509 peer_certs(sk_X509_new(nullptr));
326-
if (cert)
327-
sk_X509_push(peer_certs.get(), cert.release());
326+
if (!peer_certs)
327+
return StackOfX509();
328+
if (cert && !sk_X509_push(peer_certs.get(), cert.release()))
329+
return StackOfX509();
328330
for (int i = 0; i < sk_X509_num(ssl_certs); i++) {
329331
X509Pointer cert(X509_dup(sk_X509_value(ssl_certs, i)));
330332
if (!cert || !sk_X509_push(peer_certs.get(), cert.get()))

0 commit comments

Comments
 (0)