From 8e843ddba8de6b9dbe9851856fd4524af5d3c584 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Tue, 28 Jan 2025 03:14:48 +0100 Subject: [PATCH] QProgressBar: prevent integer overflow If `value` is INT_MAX and `lastPaintedValue` is -1 (the default), the subtraction will overflow. Extend the arguments to 64 bits. The result is only used for a double comparison anyhow. Change-Id: Id4a5396c61da81932ac626b3102e583a74264df4 Pick-to: 6.9 6.8 Reviewed-by: Richard Moe Gustavsen --- src/widgets/widgets/qprogressbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp index a905db61fd7..01eb1b00815 100644 --- a/src/widgets/widgets/qprogressbar.cpp +++ b/src/widgets/widgets/qprogressbar.cpp @@ -111,7 +111,7 @@ bool QProgressBarPrivate::repaintRequired() const if (value == lastPaintedValue) return false; - const int valueDifference = qAbs(value - lastPaintedValue); + const qint64 valueDifference = qAbs(qint64(value) - qint64(lastPaintedValue)); if (value == minimum || value == maximum) return true;