]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
vtls: avoid memory leak if sha256 call fails
authorDaniel Stenberg <daniel@haxx.se>
Mon, 12 Jun 2023 12:10:37 +0000 (14:10 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 12 Jun 2023 13:57:46 +0000 (15:57 +0200)
... in the pinned public key handling function.

Reported-by: lizhuang0630 on github
Fixes #11306
Closes #11307

lib/vtls/vtls.c

index a4ff7d61a619357e2b958e0be69c135e570508df..cdd3a4fdc1c145bdd1a9a8d16630bf932af9e60c 100644 (file)
@@ -907,14 +907,12 @@ CURLcode Curl_pin_peer_pubkey(struct Curl_easy *data,
     if(!sha256sumdigest)
       return CURLE_OUT_OF_MEMORY;
     encode = Curl_ssl->sha256sum(pubkey, pubkeylen,
-                        sha256sumdigest, CURL_SHA256_DIGEST_LENGTH);
+                                 sha256sumdigest, CURL_SHA256_DIGEST_LENGTH);
 
-    if(encode != CURLE_OK)
-      return encode;
-
-    encode = Curl_base64_encode((char *)sha256sumdigest,
-                                CURL_SHA256_DIGEST_LENGTH, &encoded,
-                                &encodedlen);
+    if(!encode)
+      encode = Curl_base64_encode((char *)sha256sumdigest,
+                                  CURL_SHA256_DIGEST_LENGTH, &encoded,
+                                  &encodedlen);
     Curl_safefree(sha256sumdigest);
 
     if(encode)