diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-03-21 10:09:11 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-03-21 10:09:11 +0100 |
commit | 6e0f26c8a8c28dffd3bc8738cd93ed9ca8e098c8 (patch) | |
tree | d7ebdc68786000c77a243e129ddb57a49f7b63dc | |
parent | 0005d00766bdaf95e23a44bd5355f68c3340b96e (diff) |
multi: fix streamclose() crash in debug mode
The code would refer to the wrong data pointer. Only debug builds do
this - for verbosity.
Reported-by: zelinchen@users.noreply.github.com
Fixes #1329
-rw-r--r-- | lib/multi.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/multi.c b/lib/multi.c index f16b594e0..6cdba393e 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2017, 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 @@ -695,13 +695,13 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi, if(data->easy_conn && data->mstate > CURLM_STATE_DO && data->mstate < CURLM_STATE_COMPLETED) { + /* Set connection owner so that the DONE function closes it. We can + safely do this here since connection is killed. */ + data->easy_conn->data = easy; /* If the handle is in a pipeline and has started sending off its request but not received its response yet, we need to close connection. */ streamclose(data->easy_conn, "Removed with partial response"); - /* Set connection owner so that the DONE function closes it. We can - safely do this here since connection is killed. */ - data->easy_conn->data = easy; easy_owns_conn = TRUE; } |