-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CURLE_UNSUPPORTED_PROTOCOL if curl_multi_remove_handle(multi, easy) called in the middle and easy is reused. #7018
Comments
A reused transfer handle could otherwise reuse the previous buffer's and havoc could ensue. Reported-by: sergio-nsk on github Fixes #7018
Does #7021 perhaps fix the issue for you? |
Yes, that pull request fixes the issue. |
Why do you think that? A proxy won't change how the code gets headers and this patch resets the header buffer before the first one can arrive so no, I can't see how this won't fix the proxy case as well! |
I looked at multi.c and supposed the issue might be in a proxy stuff also: You are right, |
and that's only for CONNECT requests, not other ones done over proxy. They use the same code path as non-proxies. |
Download a big enough data using the http protocol.
b) Or curl_easy_perform() returns the error CURLE_UNSUPPORTED_PROTOCOL.
I expected the following
Curl_dyn_reset(&data->state.headerb);
is not called after curl_multi_add_handle() anddata->state.headerb
points to the end header mark "\r\n" left after the first request. Thus, curl tries to parse "\r\nHTTP/1.1 200 OK\r\n" when the response on the second request is being processed.curl/libcurl version
libcurl v7.74.0
operating system
Any
The text was updated successfully, but these errors were encountered: