imap: make sure Curl_pgrsSetDownloadSize() does not overflow

Follow-up to c1e3a760b. The previous update missed an addition that also
can wrap and cause confusion. Fixing this by calling
Curl_pgrsSetDownloadSize() after the overflow check.

Reported-by: Deniz Parlak
Closes #19774
This commit is contained in:
Daniel Stenberg 2025-11-30 23:35:25 +01:00
parent bf58ca6e8f
commit 41931f1659
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -1214,8 +1214,6 @@ static CURLcode imap_state_listsearch_resp(struct Curl_easy *data,
/* This is a literal response, setup to receive the body data */
infof(data, "Found %" FMT_OFF_T " bytes to download", size);
/* Progress size includes both header line and literal body */
Curl_pgrsSetDownloadSize(data, size + len);
/* First write the header line */
result = Curl_client_write(data, CLIENTWRITE_BODY, line, len);
@ -1268,6 +1266,9 @@ static CURLcode imap_state_listsearch_resp(struct Curl_easy *data,
else
size += len;
/* Progress size includes both header line and literal body */
Curl_pgrsSetDownloadSize(data, size);
if(data->req.bytecount == size)
/* All data already transferred (header + literal body) */
Curl_xfer_setup_nop(data);