Browse Source

hwmon: (ads1015) Fix file leak in probe function

An error while creating sysfs attribute files in the driver's probe function
results in an error abort, but already created files are not removed. This patch
fixes the problem.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Cc: stable@vger.kernel.org # 3.0+
Cc: Dirk Eibach <eibach@gdsys.de>
Acked-by: Jean Delvare <khali@linux-fr.org>
Guenter Roeck 13 năm trước cách đây
mục cha
commit
363434b5dc
1 tập tin đã thay đổi với 1 bổ sung2 xóa
  1. 1 2
      drivers/hwmon/ads1015.c

+ 1 - 2
drivers/hwmon/ads1015.c

@@ -271,7 +271,7 @@ static int ads1015_probe(struct i2c_client *client,
 			continue;
 			continue;
 		err = device_create_file(&client->dev, &ads1015_in[k].dev_attr);
 		err = device_create_file(&client->dev, &ads1015_in[k].dev_attr);
 		if (err)
 		if (err)
-			goto exit_free;
+			goto exit_remove;
 	}
 	}
 
 
 	data->hwmon_dev = hwmon_device_register(&client->dev);
 	data->hwmon_dev = hwmon_device_register(&client->dev);
@@ -285,7 +285,6 @@ static int ads1015_probe(struct i2c_client *client,
 exit_remove:
 exit_remove:
 	for (k = 0; k < ADS1015_CHANNELS; ++k)
 	for (k = 0; k < ADS1015_CHANNELS; ++k)
 		device_remove_file(&client->dev, &ads1015_in[k].dev_attr);
 		device_remove_file(&client->dev, &ads1015_in[k].dev_attr);
-exit_free:
 	kfree(data);
 	kfree(data);
 exit:
 exit:
 	return err;
 	return err;