diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2021-04-23 00:33:46 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-04-23 14:41:39 +0200 |
commit | a4554b2c5e7c5788c8198001598818599c60ff7d (patch) | |
tree | e677d8dcf15c13b0a81c5d0ac106661dffb5be2a | |
parent | 47e169e7a46dd0932ede5225768aa666730820f1 (diff) | |
download | curl-a4554b2c5e7c5788c8198001598818599c60ff7d.tar.gz |
vtls: reset ssl use flag upon negotiation failure
Fixes the segfault in ldaps disconnect.
Reported-by: Illarion Taev
Fixes #6934
Closes #6937
-rw-r--r-- | lib/vtls/vtls.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 2e07df0a0..4bd60f6b9 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; } |