]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
vtls: Use CURLcode for Curl_ssl_init_certinfo() return type
authorSteve Holme <steve_holme@hotmail.com>
Fri, 26 Dec 2014 11:53:34 +0000 (11:53 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Fri, 26 Dec 2014 13:11:40 +0000 (13:11 +0000)
The return type for this function was 0 on success and 1 on error. This
was then examined by the calling functions and, in most cases, used to
return CURLE_OUT_OF_MEMORY.

Instead use CURLcode for the return type and return the out of memory
error directly, propagating it up the call stack.

lib/vtls/gskit.c
lib/vtls/openssl.c
lib/vtls/vtls.c
lib/vtls/vtls.h

index 87086de301052841692df25347425807c1af8cb7..0d133107ba55ae477e40018309b09251fbbc9aff 100644 (file)
@@ -855,8 +855,10 @@ static CURLcode gskit_connect_step3(struct connectdata *conn, int sockindex)
      However the server certificate may be available, thus we can return
      info about it. */
   if(data->set.ssl.certinfo) {
-    if(Curl_ssl_init_certinfo(data, 1))
-      return CURLE_OUT_OF_MEMORY;
+    result = Curl_ssl_init_certinfo(data, 1);
+    if(result)
+      return result;
+
     if(cert) {
       result = Curl_extract_certinfo(conn, 0, cert, certend);
       if(result)
index f0127a27e5d0dbdc7c18fa4ae11e47f685d46c94..a41447a5b98b10de85e5307344551dc8ebfab39b 100644 (file)
@@ -2241,6 +2241,7 @@ static CURLcode get_cert_chain(struct connectdata *conn,
                                struct ssl_connect_data *connssl)
 
 {
+  CURLcode result;
   STACK_OF(X509) *sk;
   int i;
   char *bufp;
@@ -2258,9 +2259,11 @@ static CURLcode get_cert_chain(struct connectdata *conn,
   }
 
   numcerts = sk_X509_num(sk);
-  if(Curl_ssl_init_certinfo(data, numcerts)) {
+
+  result = Curl_ssl_init_certinfo(data, numcerts);
+  if(result) {
     free(bufp);
-    return CURLE_OUT_OF_MEMORY;
+    return result;
   }
 
   infof(data, "--- Certificate chain\n");
index 905ddd3e99585b0108bc7c43f37791ae0e6f3a68..165f49b8bf645cb08f33feccf29f8d3647f6d8b1 100644 (file)
@@ -605,22 +605,21 @@ void Curl_ssl_free_certinfo(struct SessionHandle *data)
   }
 }
 
-int Curl_ssl_init_certinfo(struct SessionHandle * data,
-                           int num)
+CURLcode Curl_ssl_init_certinfo(struct SessionHandle *data, int num)
 {
-  struct curl_certinfo * ci = &data->info.certs;
-  struct curl_slist * * table;
+  struct curl_certinfo *ci = &data->info.certs;
+  struct curl_slist **table;
 
-  /* Initialize the certificate information structures. Return 0 if OK, else 1.
-   */
+  /* Initialize the certificate information structures */
   Curl_ssl_free_certinfo(data);
   ci->num_of_certs = num;
   table = calloc((size_t) num, sizeof(struct curl_slist *));
   if(!table)
-    return 1;
+    return CURLE_OUT_OF_MEMORY;
 
   ci->certinfo = table;
-  return 0;
+
+  return CURLE_OK;
 }
 
 /*
index 8091868c860969772b2c8664325f1a1a8d4d99e1..19ef1cd6eac9215dea0189d2abd70f2d42bfab58 100644 (file)
@@ -82,7 +82,7 @@ int Curl_ssl_check_cxn(struct connectdata *conn);
 /* Certificate information list handling. */
 
 void Curl_ssl_free_certinfo(struct SessionHandle *data);
-int Curl_ssl_init_certinfo(struct SessionHandle * data, int num);
+CURLcode Curl_ssl_init_certinfo(struct SessionHandle * data, int num);
 CURLcode Curl_ssl_push_certinfo_len(struct SessionHandle * data, int certnum,
                                     const char * label, const char * value,
                                     size_t valuelen);