sendf: fix paused header writes since after the header API

Regression since d1e4a67

Reported-by: Sergey Ogryzkov
Fixes #9180
Closes #9182
This commit is contained in:
Daniel Stenberg 2022-07-19 17:54:23 +02:00
parent 7935972b37
commit 6f037100eb
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -496,6 +496,9 @@ static CURLcode pausewrite(struct Curl_easy *data,
}
}
DEBUGASSERT(i < 3);
if(i >= 3)
/* There are more types to store than what fits: very bad */
return CURLE_OUT_OF_MEMORY;
}
else
i = 0;
@ -607,8 +610,10 @@ static CURLcode chop_write(struct Curl_easy *data,
/* here we pass in the HEADER bit only since if this was body as well
then it was passed already and clearly that didn't trigger the
pause, so this is saved for later with the HEADER bit only */
return pausewrite(data, CLIENTWRITE_HEADER, optr, olen);
return pausewrite(data, CLIENTWRITE_HEADER |
(type & (CLIENTWRITE_STATUS|CLIENTWRITE_CONNECT|
CLIENTWRITE_1XX|CLIENTWRITE_TRAILER)),
optr, olen);
if(wrote != olen) {
failf(data, "Failed writing header");
return CURLE_WRITE_ERROR;