transfer: refuse POSTFIELDS + RESUME_FROM combo

The code assumes that such a resume is wanting to continue an upload
using the read callback, and since POSTFIELDS is done without callback
libcurl will just misbehave.

This combo will make the transfer fail with CURLE_BAD_FUNCTION_ARGUMENT
with an explanation in the error message.

Reported-by: Smackd0wn on github
Fixes #11081
Closes #11083
This commit is contained in:
Daniel Stenberg 2023-05-08 00:12:25 +02:00
parent 39434db41f
commit fb7886b9c9
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -1325,6 +1325,12 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
}
}
if(data->set.postfields && data->set.set_resume_from) {
/* we can't */
failf(data, "cannot mix POSTFIELDS with RESUME_FROM");
return CURLE_BAD_FUNCTION_ARGUMENT;
}
data->state.prefer_ascii = data->set.prefer_ascii;
data->state.list_only = data->set.list_only;
data->state.httpreq = data->set.method;