On Tue, 2011-08-09 at 11:10 -0400, Julia Lawall wrote: > From: Julia Lawall <julia@xxxxxxx> > > 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@xxxxxxx> > 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 */ > _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors