From 3619c4bc23e853b766164b1e5f586eee654301b0 Mon Sep 17 00:00:00 2001 From: Michael Wachenschwanz Date: Thu, 2 Feb 2023 16:37:09 -0800 Subject: [PATCH] Fix divide-by-zero in mobile radio remaining power calculation Fixes: 262258554 Test: atest CtsDumpsysHostTestCases:android.dumpsys.cts.BatteryStatsDumpsysTest#testBatterystatsOutput (on a non ODPM enabled device) Change-Id: Iae006a2fd74f456c0ec4ca6e9c33d4f80fd48f9c --- .../server/power/stats/MobileRadioPowerCalculator.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/power/stats/MobileRadioPowerCalculator.java b/services/core/java/com/android/server/power/stats/MobileRadioPowerCalculator.java index 3226260a2c5dc..aba8e5fa95077 100644 --- a/services/core/java/com/android/server/power/stats/MobileRadioPowerCalculator.java +++ b/services/core/java/com/android/server/power/stats/MobileRadioPowerCalculator.java @@ -264,8 +264,10 @@ public class MobileRadioPowerCalculator extends PowerCalculator { if (total.remainingPowerMah < 0) total.remainingPowerMah = 0; } else { // Smear unattributed active time and add it to the remaining power consumption. - total.remainingPowerMah += - (totalActivePowerMah * total.remainingDurationMs) / totalActiveDurationMs; + if (totalActiveDurationMs != 0) { + total.remainingPowerMah += + (totalActivePowerMah * total.remainingDurationMs) / totalActiveDurationMs; + } // Calculate the inactive modem power consumption. final BatteryStats.ControllerActivityCounter modemActivity =