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/connect.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/connect.c')
-rw-r--r-- | lib/connect.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/connect.c b/lib/connect.c index 12ae817e3..41f220268 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -1259,9 +1259,11 @@ curl_socket_t Curl_getconnectinfo(struct Curl_easy *data, return CURL_SOCKET_BAD; } - if(connp) + if(connp) { /* only store this if the caller cares for it */ *connp = c; + c->data = data; + } return c->sock[FIRSTSOCKET]; } else |