From: Jay Satiro Date: Mon, 28 Apr 2025 17:35:44 +0000 (-0400) Subject: progress: fix integer overflow check X-Git-Tag: curl-8_14_0~187 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a70b9823baa78af953aa89d077681293efe8b22;p=thirdparty%2Fcurl.git progress: fix integer overflow check - Fix logic typo. Prior to this change the overflow check was reversed, meaning it did not stop an overflow condition and also if there wasn't an overflow it erroneously set the total expected transfer size to the maximum value. Follow-up to 69ce9a7f from earlier today. Closes https://github.com/curl/curl/pull/17213 --- diff --git a/lib/progress.c b/lib/progress.c index f02bfb2c08..aa63fed0e5 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -548,7 +548,7 @@ static void progress_meter(struct Curl_easy *data) ((p->flags & PGRS_DL_SIZE_KNOWN) ? p->dl.total_size : p->dl.cur_size); /* integer overflow check */ - if((CURL_OFF_T_MAX - total_expected_size) > dl_size) + if((CURL_OFF_T_MAX - total_expected_size) < dl_size) total_expected_size = CURL_OFF_T_MAX; /* capped */ else total_expected_size += dl_size;