]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
vtls: reset ssl use flag upon negotiation failure
authorPatrick Monnerat <patrick@monnerat.net>
Thu, 22 Apr 2021 22:33:46 +0000 (00:33 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 23 Apr 2021 12:41:39 +0000 (14:41 +0200)
Fixes the segfault in ldaps disconnect.

Reported-by: Illarion Taev
Fixes #6934
Closes #6937

lib/vtls/vtls.c

index 2e07df0a04623bc04e5b585f91b5123fe78f3b47..4bd60f6b919cbe916908cd416bce76249129ccfe 100644 (file)
@@ -315,6 +315,8 @@ Curl_ssl_connect(struct Curl_easy *data, struct connectdata *conn,
 
   if(!result)
     Curl_pgrsTime(data, TIMER_APPCONNECT); /* SSL is connected */
+  else
+    conn->ssl[sockindex].use = FALSE;
 
   return result;
 }
@@ -338,7 +340,9 @@ Curl_ssl_connect_nonblocking(struct Curl_easy *data, struct connectdata *conn,
   /* mark this is being ssl requested from here on. */
   conn->ssl[sockindex].use = TRUE;
   result = Curl_ssl->connect_nonblocking(data, conn, sockindex, done);
-  if(!result && *done)
+  if(result)
+    conn->ssl[sockindex].use = FALSE;
+  else if(*done)
     Curl_pgrsTime(data, TIMER_APPCONNECT); /* SSL is connected */
   return result;
 }