Patchwork s3c-adc-battery: Fix possible NULL pointer dereference

login
register
mail settings
Submitter Syam Sidhardhan
Date Feb. 24, 2013, 11:03 p.m.
Message ID <1361747005-29306-1-git-send-email-s.syam@samsung.com>
Download mbox | patch
Permalink /patch/222804/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Syam Sidhardhan - Feb. 24, 2013, 11:03 p.m.
Check for (bat == NULL) has to be done before accessing bat

Signed-off-by: Syam Sidhardhan <s.syam@samsung.com>
---
 drivers/power/s3c_adc_battery.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
Anton Vorontsov - March 19, 2013, 2:43 a.m.
On Mon, Feb 25, 2013 at 04:33:25AM +0530, Syam Sidhardhan wrote:
> Check for (bat == NULL) has to be done before accessing bat
> 
> Signed-off-by: Syam Sidhardhan <s.syam@samsung.com>
> ---

Applied, thanks!

>  drivers/power/s3c_adc_battery.c |    7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/power/s3c_adc_battery.c b/drivers/power/s3c_adc_battery.c
> index d2ca989..5948ce0 100644
> --- a/drivers/power/s3c_adc_battery.c
> +++ b/drivers/power/s3c_adc_battery.c
> @@ -145,14 +145,17 @@ static int s3c_adc_bat_get_property(struct power_supply *psy,
>  
>  	int new_level;
>  	int full_volt;
> -	const struct s3c_adc_bat_thresh *lut = bat->pdata->lut_noac;
> -	unsigned int lut_size = bat->pdata->lut_noac_cnt;
> +	const struct s3c_adc_bat_thresh *lut;
> +	unsigned int lut_size;
>  
>  	if (!bat) {
>  		dev_err(psy->dev, "no battery infos ?!\n");
>  		return -EINVAL;
>  	}
>  
> +	lut = bat->pdata->lut_noac;
> +	lut_size = bat->pdata->lut_noac_cnt;
> +
>  	if (bat->volt_value < 0 || bat->cur_value < 0 ||
>  		jiffies_to_msecs(jiffies - bat->timestamp) >
>  			BAT_POLL_INTERVAL) {
> -- 
> 1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/power/s3c_adc_battery.c b/drivers/power/s3c_adc_battery.c
index d2ca989..5948ce0 100644
--- a/drivers/power/s3c_adc_battery.c
+++ b/drivers/power/s3c_adc_battery.c
@@ -145,14 +145,17 @@  static int s3c_adc_bat_get_property(struct power_supply *psy,
 
 	int new_level;
 	int full_volt;
-	const struct s3c_adc_bat_thresh *lut = bat->pdata->lut_noac;
-	unsigned int lut_size = bat->pdata->lut_noac_cnt;
+	const struct s3c_adc_bat_thresh *lut;
+	unsigned int lut_size;
 
 	if (!bat) {
 		dev_err(psy->dev, "no battery infos ?!\n");
 		return -EINVAL;
 	}
 
+	lut = bat->pdata->lut_noac;
+	lut_size = bat->pdata->lut_noac_cnt;
+
 	if (bat->volt_value < 0 || bat->cur_value < 0 ||
 		jiffies_to_msecs(jiffies - bat->timestamp) >
 			BAT_POLL_INTERVAL) {