From: Daniel Stenberg Date: Sun, 7 May 2023 22:12:25 +0000 (+0200) Subject: transfer: refuse POSTFIELDS + RESUME_FROM combo X-Git-Tag: curl-8_1_0~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fb7886b9c95009a837f584caf4943a455f3daa60;p=thirdparty%2Fcurl.git 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 --- diff --git a/lib/transfer.c b/lib/transfer.c index 947070956d..d2ff0c24c2 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -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;