mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
power: supply: charger-manager: fix refcount leak in is_full_charged()
In is_full_charged(), power_supply_get_by_name() is called to
obtain a reference to the fuel_gauge power supply. If the
voltage check (uV >= desc->fullbatt_uV) succeeds, the function
returns true directly without releasing the reference, leaking
the refcount.
Fix this by setting a flag and jumping to the out label where
power_supply_put() properly drops the reference.
Cc: stable@vger.kernel.org
Fixes: e132fc6bb8 ("power: supply: charger-manager: Make decisions focussed on battery status")
Signed-off-by: WenTao Liang <vulab@iscas.ac.cn>
Link: https://patch.msgid.link/20260611005322.53096-1-vulab@iscas.ac.cn
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
ba61aed9a3
commit
4373cfa38e
|
|
@ -303,8 +303,10 @@ static bool is_full_charged(struct charger_manager *cm)
|
|||
if (cm->battery_status == POWER_SUPPLY_STATUS_FULL
|
||||
&& desc->fullbatt_vchkdrop_uV)
|
||||
uV += desc->fullbatt_vchkdrop_uV;
|
||||
if (uV >= desc->fullbatt_uV)
|
||||
return true;
|
||||
if (uV >= desc->fullbatt_uV) {
|
||||
is_full = true;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user