diff --git a/lib/multi.c b/lib/multi.c index 651a47d1b74a6bdc77eee2c117fdf204390c46fc..f6749f18f5cd7fb68702efdae8bea58a65624913 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -440,8 +440,9 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles) /* When we follow redirects, must to go back to the CONNECT state */ if(easy->easy_conn->newurl) { - easy->result = Curl_follow(easy->easy_handle, - strdup(easy->easy_conn->newurl)); + char *newurl = easy->easy_conn->newurl; + easy->easy_conn->newurl = NULL; + easy->result = Curl_follow(easy->easy_handle, newurl); if(CURLE_OK == easy->result) { easy->state = CURLM_STATE_CONNECT; result = CURLM_CALL_MULTI_PERFORM;