diff --git a/lib/rtsp.c b/lib/rtsp.c index e32756fd87..b071458beb 100644 --- a/lib/rtsp.c +++ b/lib/rtsp.c @@ -270,15 +270,14 @@ static CURLcode rtsp_do(struct Curl_easy *data, bool *done) /* Setup the first_* fields to allow auth details get sent to this origin */ - /* Free to avoid leaking memory on multiple requests */ - free(data->state.first_host); + if(!data->state.first_host) { + data->state.first_host = strdup(conn->host.name); + if(!data->state.first_host) + return CURLE_OUT_OF_MEMORY; - data->state.first_host = strdup(conn->host.name); - if(!data->state.first_host) - return CURLE_OUT_OF_MEMORY; - - data->state.first_remote_port = conn->remote_port; - data->state.first_remote_protocol = conn->handler->protocol; + data->state.first_remote_port = conn->remote_port; + data->state.first_remote_protocol = conn->handler->protocol; + } /* Setup the 'p_request' pointer to the proper p_request string * Since all RTSP requests are included here, there is no need to