[Pkg-utopia-maintainers] Bug#1109970: upower crashes due to -NaN battery percentage from ACPI
Renkas Mykhailo
worker.want.working at gmail.com
Sun Jul 27 11:13:20 BST 2025
Package: upower
Version: 1.90.3-1
Severity: important
Tags: patch upstream
Dear Maintainer,
On systems with broken battery controllers, ACPI may report an invalid battery
capacity value, specifically `-NaN`. This causes `upowerd` to crash repeatedly
due to an invalid gdouble being passed to `g_object_set`.
This leads to system instability or continuous reboots due to repeated crashes
of systemd-managed services.
The following patch adds a basic sanity check to clamp invalid values to 0.0.
--- PATCH START ---
--- upower-1.90.3.orig/src/linux/up-device-supply.c
+++ upower-1.90.3/src/linux/up-device-supply.c
@@ -313,6 +313,11 @@ up_device_supply_refresh_device (UpDevic
if (percentage == 100.0)
state = UP_DEVICE_STATE_FULLY_CHARGED;
+ if (!isfinite(percentage) || percentage < 0.0 || percentage > 100.0) {
+ g_warning("Invalid percentage value: %f, setting to 0.0", percentage);
+ percentage = 0.0;
+ }
+
g_object_set (device,
"percentage", percentage,
"battery-level", level,
--- PATCH END ---
Tested on affected system; no crash occurs after patch is applied.
Regards,
Renkas Mykhailo
More information about the Pkg-utopia-maintainers
mailing list