diff --git a/lib/multi.c b/lib/multi.c index 651a47d1b..f6749f18f 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;