Fix segfault when printing battery status
PATCH 1/1 Fix segfault when printing battery status
cat /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:19/PNP0C0A:00/power_supply/BAT1/status
This leads to a stacktrace as acpi_battery_get_property() returns 0 for a case where it does not set val->intval. These value is used as an array index in drivers/power/power_supply_sysfs.c::power_supply_show_property(). I had a situation where the value was 4096 which caused a problem as the array only has 5 entries.
drivers/acpi/battery.c +2 -0
@@ -153,6 +153,8 @@ static int acpi_battery_get_property(struct power_supply *psy, val->intval =POWER_SUPPLY_STATUS_CHARGING ; else if (battery->state == 0) val->intval = POWER_SUPPLY_STATUS_FULL; + else + val->intval = POWER_SUPPLY_STATUS_UNKNOWN;break ;case POWER_SUPPLY_PROP_PRESENT : val->intval =acpi_battery_present (battery);
Quoted 6 lines · Rolf Eike Beer
cat /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:19/PNP0C0A:00/power_supply/BAT1/status
This leads to a stacktrace as
acpi_battery_get_property()returns 0 for a case where it does not setval->intval. These value is used as an array index in drivers/power/power_supply_sysfs.c::power_supply_show_property(). I had a situation where the value was 4096 which caused a problem as the array only has 5 entries.Signed-off-by Rolf Eike Beer <[email protected]>
Rolf, thanks for remainding.
Acked again,
Alex.
Quoted 12 lines · Alexey Starikovskiy
Quoted 11 lines · Rolf Eike Beer
cat /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:19/PNP0C0A:00/power_ supply/BAT1/status
This leads to a stacktrace as
acpi_battery_get_property()returns 0 for a case where it does not setval->intval. These value is used as an array index in drivers/power/power_supply_sysfs.c::power_supply_show_property(). I had a situation where the value was 4096 which caused a problem as the array only has 5 entries.
Quoted 3 lines
Quoted 1 line
Signed-off-by Rolf Eike Beer <[email protected]>Rolf, thanks for remainding.
Huh? This one is unrelated to the problem I reported two weeks ago...
Eike
Quoted 15 lines · Rolf Eike Beer
Quoted 13 lines · Alexey Starikovskiy
Quoted 11 lines · Rolf Eike Beer
cat /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:19/PNP0C0A:00/power_ supply/BAT1/status
This leads to a stacktrace as
acpi_battery_get_property()returns 0 for a case where it does not setval->intval. These value is used as an array index in drivers/power/power_supply_sysfs.c::power_supply_show_property(). I had a situation where the value was 4096 which caused a problem as the array only has 5 entries.
Quoted 9 lines
Quoted 4 lines
Quoted 2 lines
Signed-off-by Rolf Eike Beer <[email protected]>Rolf, thanks for remainding.
Huh? This one is unrelated to the problem I reported two weeks ago...
Eike
You are second to send the same patch, first one I already acked. But it seems that Len did not pick it up yet.
Look for "ACPI: Always return valid 'status' from acpi_battery_get_property()" if interested...
Regards,
Alex.
Quoted 23 lines · On Mon, 19 Nov 2007 14:09:51 +0300 Alexey Starikovskiy <[email protected]>…
Quoted 22 lines · Rolf Eike Beer
Quoted 13 lines · Alexey Starikovskiy
Quoted 11 lines · Rolf Eike Beer
cat /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:19/PNP0C0A:00/power_ supply/BAT1/status
This leads to a stacktrace as
acpi_battery_get_property()returns 0 for a case where it does not setval->intval. These value is used as an array index in drivers/power/power_supply_sysfs.c::power_supply_show_property(). I had a situation where the value was 4096 which caused a problem as the array only has 5 entries.Quoted 4 lines
Quoted 2 lines
Signed-off-by Rolf Eike Beer <[email protected]>Rolf, thanks for remainding.
Huh? This one is unrelated to the problem I reported two weeks ago...
Quoted 8 lines
Quoted 2 lines
Eike
You are second to send the same patch, first one I already acked. But it seems that Len did not pick it up yet.
Look for "ACPI: Always return valid 'status' fromacpi_battery_get_property()"
if interested...
This fix is in Len's tree and was in his 2.6.24-rc3 pull request to Linus.