Skip to content

Commit d76e7e4

Browse files
tniessenjuanarbol
authored andcommitted
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. PR-URL: #44410 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Filip Skokan <[email protected]>
1 parent cae9c5d commit d76e7e4

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/crypto/crypto_common.cc

+3-2
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,9 @@ MaybeLocal<Value> GetCipherVersion(Environment* env, const SSL_CIPHER* cipher) {
339339
StackOfX509 CloneSSLCerts(X509Pointer&& cert,
340340
const STACK_OF(X509)* const ssl_certs) {
341341
StackOfX509 peer_certs(sk_X509_new(nullptr));
342-
if (cert)
343-
sk_X509_push(peer_certs.get(), cert.release());
342+
if (!peer_certs) return StackOfX509();
343+
if (cert && !sk_X509_push(peer_certs.get(), cert.release()))
344+
return StackOfX509();
344345
for (int i = 0; i < sk_X509_num(ssl_certs); i++) {
345346
X509Pointer cert(X509_dup(sk_X509_value(ssl_certs, i)));
346347
if (!cert || !sk_X509_push(peer_certs.get(), cert.get()))

0 commit comments

Comments
 (0)