]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
openssl: check the return value of BIO_new()
authorx2018 <xkernel.wang@foxmail.com>
Wed, 1 Dec 2021 03:20:33 +0000 (11:20 +0800)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 1 Dec 2021 10:51:53 +0000 (11:51 +0100)
Closes #8078

lib/vtls/openssl.c

index 237f49878c5b40680b87e23d6b157d51bfc2f9da..94bfb57e7d56f51e5636a38139d8c4b73b62e357 100644 (file)
@@ -3570,6 +3570,9 @@ static CURLcode get_cert_chain(struct Curl_easy *data,
   }
 
   mem = BIO_new(BIO_s_mem());
+  if(!mem) {
+    return CURLE_OUT_OF_MEMORY;
+  }
 
   for(i = 0; i < (int)numcerts; i++) {
     ASN1_INTEGER *num;
@@ -3866,6 +3869,15 @@ static CURLcode servercert(struct Curl_easy *data,
   BIO *mem = BIO_new(BIO_s_mem());
   struct ssl_backend_data *backend = connssl->backend;
 
+  if(!mem) {
+    failf(data,
+          "BIO_new return NULL, " OSSL_PACKAGE
+          " error %s",
+          ossl_strerror(ERR_get_error(), error_buffer,
+                        sizeof(error_buffer)) );
+    return CURLE_OUT_OF_MEMORY;
+  }
+
   if(data->set.ssl.certinfo)
     /* we've been asked to gather certificate info! */
     (void)get_cert_chain(data, connssl);