On Thu, Jun 06, 2019 at 07:35:44AM -0700, Eduardo Valentin wrote: > On Wed, Jun 05, 2019 at 01:38:38PM -0700, Guenter Roeck wrote: > > On Wed, May 29, 2019 at 07:56:05PM -0700, Eduardo Valentin wrote: > > > When registering a hwmon device with HWMON_C_REGISTER_TZ flag > > > in place, the hwmon subsystem will attempt to register the device > > > also with the thermal subsystem. When the of-thermal registration > > > fails, __hwmon_device_register jumps to ida_remove, leaving > > > the locally allocated hwdev pointer. > > > > > > This patch fixes the leak by jumping to a new label that > > > will first unregister hdev and then fall into the kfree of hwdev > > > to finally remove the idas and propagate the error code. > > > > > > > Hah, actually this is wrong. hwdev is freed indirectly with the > > device_unregister() call. See commit 74e3512731bd ("hwmon: (core) > > Fix double-free in __hwmon_device_register()"). > > heh.. I see it now. Well, it is not a straight catch though. > > > > > It may make sense to add a respective comment to the code, though. > > > > I agree. Or a simple comment saying "dont worry about freeing hwdev > because hwmon_dev_release() takes care of it". > > Are you patching it ? > Will do. I'll send a patch in a minute. Thanks, Guenter