mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] drivers/hwmon/ibmaem.c: add missing kfree
@ 2011-08-09 15:10 Julia Lawall
  2011-08-09 18:04 ` Guenter Roeck
  0 siblings, 1 reply; 2+ messages in thread
From: Julia Lawall @ 2011-08-09 15:10 UTC (permalink / raw)
  To: Jean Delvare; +Cc: kernel-janitors, Guenter Roeck, lm-sensors, linux-kernel

From: Julia Lawall <julia@diku.dk>

rs_resp is dynamically allocated in this function, so it should be freed
before exiting in every case.  This collects the kfree and the return at
the end of the function.

Signed-off-by: Julia Lawall <julia@diku.dk>

---
 drivers/hwmon/ibmaem.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
index 058e0ae..783d0c1 100644
--- a/drivers/hwmon/ibmaem.c
+++ b/drivers/hwmon/ibmaem.c
@@ -399,13 +399,15 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
 	aem_send_message(ipmi);
 
 	res = wait_for_completion_timeout(&ipmi->read_complete, IPMI_TIMEOUT);
-	if (!res)
-		return -ETIMEDOUT;
+	if (!res) {
+		res = -ETIMEDOUT;
+		goto out;
+	}
 
 	if (ipmi->rx_result || ipmi->rx_msg_len != rs_size ||
 	    memcmp(&rs_resp->id, &system_x_id, sizeof(system_x_id))) {
-		kfree(rs_resp);
-		return -ENOENT;
+		res = -ENOENT;
+		goto out;
 	}
 
 	switch (size) {
@@ -430,8 +432,11 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
 		break;
 	}
 	}
+	res = 0;
 
-	return 0;
+out:
+	kfree(rs_resp);
+	return res;
 }
 
 /* Update AEM energy registers */


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] drivers/hwmon/ibmaem.c: add missing kfree
  2011-08-09 15:10 [PATCH] drivers/hwmon/ibmaem.c: add missing kfree Julia Lawall
@ 2011-08-09 18:04 ` Guenter Roeck
  0 siblings, 0 replies; 2+ messages in thread
From: Guenter Roeck @ 2011-08-09 18:04 UTC (permalink / raw)
  To: Julia Lawall; +Cc: Jean Delvare, kernel-janitors, lm-sensors, linux-kernel

On Tue, 2011-08-09 at 11:10 -0400, Julia Lawall wrote:
> From: Julia Lawall <julia@diku.dk>
> 
> rs_resp is dynamically allocated in this function, so it should be freed
> before exiting in every case.  This collects the kfree and the return at
> the end of the function.
> 
> Signed-off-by: Julia Lawall <julia@diku.dk>
> 
Good catch. Applied.

Thanks,
Guenter


> ---
>  drivers/hwmon/ibmaem.c |   15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
> index 058e0ae..783d0c1 100644
> --- a/drivers/hwmon/ibmaem.c
> +++ b/drivers/hwmon/ibmaem.c
> @@ -399,13 +399,15 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
>  	aem_send_message(ipmi);
>  
>  	res = wait_for_completion_timeout(&ipmi->read_complete, IPMI_TIMEOUT);
> -	if (!res)
> -		return -ETIMEDOUT;
> +	if (!res) {
> +		res = -ETIMEDOUT;
> +		goto out;
> +	}
>  
>  	if (ipmi->rx_result || ipmi->rx_msg_len != rs_size ||
>  	    memcmp(&rs_resp->id, &system_x_id, sizeof(system_x_id))) {
> -		kfree(rs_resp);
> -		return -ENOENT;
> +		res = -ENOENT;
> +		goto out;
>  	}
>  
>  	switch (size) {
> @@ -430,8 +432,11 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg,
>  		break;
>  	}
>  	}
> +	res = 0;
>  
> -	return 0;
> +out:
> +	kfree(rs_resp);
> +	return res;
>  }
>  
>  /* Update AEM energy registers */
> 



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-08-09 18:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-09 15:10 [PATCH] drivers/hwmon/ibmaem.c: add missing kfree Julia Lawall
2011-08-09 18:04 ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®