From: Patrick Monnerat Date: Thu, 22 Apr 2021 22:33:46 +0000 (+0200) Subject: vtls: reset ssl use flag upon negotiation failure X-Git-Tag: curl-7_77_0~138 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a4554b2c5e7c5788c8198001598818599c60ff7d;p=thirdparty%2Fcurl.git vtls: reset ssl use flag upon negotiation failure Fixes the segfault in ldaps disconnect. Reported-by: Illarion Taev Fixes #6934 Closes #6937 --- diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 2e07df0a04..4bd60f6b91 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -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; }