On Thu, 30 Jun 2011 10:29:51 -0700, Guenter Roeck wrote: > Probe function did not free allocated memory if it failed. Fix it. > > Signed-off-by: Guenter Roeck <guenter.roeck@xxxxxxxxxxxx> Good catch. Acked-by: Jean Delvare <khali@xxxxxxxxxxxx> > --- > drivers/hwmon/adm1275.c | 16 +++++++++++++--- > 1 files changed, 13 insertions(+), 3 deletions(-) > > diff --git a/drivers/hwmon/adm1275.c b/drivers/hwmon/adm1275.c > index c2ee204..b9b7caf 100644 > --- a/drivers/hwmon/adm1275.c > +++ b/drivers/hwmon/adm1275.c > @@ -32,6 +32,7 @@ static int adm1275_probe(struct i2c_client *client, > const struct i2c_device_id *id) > { > int config; > + int ret; > struct pmbus_driver_info *info; > > if (!i2c_check_functionality(client->adapter, > @@ -43,8 +44,10 @@ static int adm1275_probe(struct i2c_client *client, > return -ENOMEM; > > config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > - if (config < 0) > - return config; > + if (config < 0) { > + ret = config; > + goto err_mem; > + } > > info->pages = 1; > info->direct[PSC_VOLTAGE_IN] = true; > @@ -76,7 +79,14 @@ static int adm1275_probe(struct i2c_client *client, > else > info->func[0] |= PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT; > > - return pmbus_do_probe(client, id, info); > + ret = pmbus_do_probe(client, id, info); > + if (ret) > + goto err_mem; > + return 0; > + > +err_mem: > + kfree(info); > + return ret; > } > > static int adm1275_remove(struct i2c_client *client) -- Jean Delvare _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors