From 0d929c8b92f06d4acad631443c72eec70fd68355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Wed, 1 Nov 2017 20:37:51 +0100 Subject: [PATCH] Prevent integer overflow when computing percents in CostRepartitionBanner --- src/view/CostRepartitionBanner.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/view/CostRepartitionBanner.cpp b/src/view/CostRepartitionBanner.cpp index d445088..de490db 100644 --- a/src/view/CostRepartitionBanner.cpp +++ b/src/view/CostRepartitionBanner.cpp @@ -151,7 +151,7 @@ void CostRepartitionBanner::UpdateCosts(int *categoriesValues, int totalDebit) { int i; User* user = _kiss->GetUser(); - int value, percents; + unsigned long value, percents, utotalDebit = totalDebit; QString v; QPieSeries* series = (QPieSeries*) (_pie->series()[0]); QList slices = series->slices(); @@ -159,7 +159,9 @@ void CostRepartitionBanner::UpdateCosts(int *categoriesValues, int totalDebit) for(i=0; iGetCategoriesNumber(); i++) { if (totalDebit != 0) - percents = (categoriesValues[i]*100)/totalDebit; + { + percents = ((categoriesValues[i]*(unsigned long)100))/utotalDebit; + } else percents = 0.0;