diff options
author | Daniel Stenberg <daniel@haxx.se> | 2018-06-20 23:00:36 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-06-21 09:44:04 +0200 |
commit | 2c15693a3c355d8296a1828123a864397296460b (patch) | |
tree | 4c63ede95b6ad7ee2924464ba5a27a5314c55736 /lib/url.c | |
parent | dfb873e308eb19ee31064bb2a398f7da7b58873c (diff) | |
download | curl-2c15693a3c355d8296a1828123a864397296460b.tar.gz |
url: fix dangling conn->data pointer
By masking sure to use the *current* easy handle with extracted
connections from the cache, and make sure to NULLify the ->data pointer
when the connection is put into the cache to make this mistake easier to
detect in the future.
Reported-by: Will Dietz
Fixes #2669
Closes #2672
Diffstat (limited to 'lib/url.c')
-rw-r--r-- | lib/url.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -965,6 +965,7 @@ static bool extract_if_dead(struct connectdata *conn, use */ bool dead; + conn->data = data; if(conn->handler->connection_check) { /* The protocol has a special method for checking the state of the connection. Use it to check if the connection is dead. */ @@ -979,7 +980,6 @@ static bool extract_if_dead(struct connectdata *conn, } if(dead) { - conn->data = data; infof(data, "Connection %ld seems to be dead!\n", conn->connection_id); Curl_conncache_remove_conn(conn, FALSE); return TRUE; |