From 19679fef1dea7593ca8b12b874282669b9c12ac0 Mon Sep 17 00:00:00 2001 From: Abhijeet Dharmapurikar Date: Tue, 1 Nov 2016 11:35:29 -0700 Subject: [PATCH] smb-lib: fix null ptr access while handling src change interrupt The apsd done handling could end up accessing a null ptr returned from smblib_update_usb_type(). Fix it so that smblib_update_usb_type() never returns a null pointer. Change-Id: I53cd6ed709263669edbc34f096a21cddffcf4489 Signed-off-by: Abhijeet Dharmapurikar --- drivers/power/qcom-charger/smb-lib.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/power/qcom-charger/smb-lib.c b/drivers/power/qcom-charger/smb-lib.c index 198e77469bbe..99262ae1532d 100644 --- a/drivers/power/qcom-charger/smb-lib.c +++ b/drivers/power/qcom-charger/smb-lib.c @@ -504,15 +504,14 @@ static int try_rerun_apsd_for_hvdcp(struct smb_charger *chg) static const struct apsd_result *smblib_update_usb_type(struct smb_charger *chg) { - const struct apsd_result *apsd_result; + const struct apsd_result *apsd_result = smblib_get_apsd_result(chg); /* if PD is active, APSD is disabled so won't have a valid result */ if (chg->pd_active) { chg->usb_psy_desc.type = POWER_SUPPLY_TYPE_USB_PD; - return 0; + return apsd_result; } - apsd_result = smblib_get_apsd_result(chg); chg->usb_psy_desc.type = apsd_result->pst; return apsd_result; }