Curl_connect_done: handle being called twice

Follow-up to f0b7099a10

When torture testing 1021, it turns out the Curl_connect_done function
might be called twice and that previously then wrongly cleared the HTTP
pointer in the second invoke.

Closes #7999
This commit is contained in:
Daniel Stenberg 2021-11-12 13:34:49 +01:00
parent b589696f03
commit b89a4b5191
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -207,8 +207,9 @@ void Curl_connect_done(struct Curl_easy *data)
Curl_dyn_free(&s->rcvbuf);
Curl_dyn_free(&s->req);
/* restore the protocol pointer */
data->req.p.http = s->prot_save;
/* restore the protocol pointer, if not already done */
if(s->prot_save)
data->req.p.http = s->prot_save;
s->prot_save = NULL;
data->info.httpcode = 0; /* clear it as it might've been used for the
proxy */