summaryrefslogtreecommitdiff
path: root/lib/multi.c
diff options
context:
space:
mode:
authorHarry Sintonen <sintonen@iki.fi>2021-05-05 13:42:26 +0200
committerDaniel Stenberg <daniel@haxx.se>2021-05-24 13:15:10 +0200
commit7f4a9a9b2a49547eae24d2e19bc5c346e9026479 (patch)
treefa0a54b9a525d5aa863270ff4edb893553ea75d2 /lib/multi.c
parent39ce47f219b09c380b81f89fe54ac586c8db6bde (diff)
downloadcurl-7f4a9a9b2a49547eae24d2e19bc5c346e9026479.tar.gz
openssl: associate/detach the transfer from connection
CVE-2021-22901 Bug: https://curl.se/docs/CVE-2021-22901.html
Diffstat (limited to 'lib/multi.c')
-rw-r--r--lib/multi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 54365f399..1b3e261c6 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -878,8 +878,10 @@ bool Curl_multiplex_wanted(const struct Curl_multi *multi)
void Curl_detach_connnection(struct Curl_easy *data)
{
struct connectdata *conn = data->conn;
- if(conn)
+ if(conn) {
Curl_llist_remove(&conn->easyq, &data->conn_queue, NULL);
+ Curl_ssl_detach_conn(data, conn);
+ }
data->conn = NULL;
}
@@ -898,6 +900,7 @@ void Curl_attach_connnection(struct Curl_easy *data,
&data->conn_queue);
if(conn->handler->attach)
conn->handler->attach(data, conn);
+ Curl_ssl_associate_conn(data, conn);
}
static int waitconnect_getsock(struct connectdata *conn,