• Guenter Roeck's avatar
    hwmon: (core) Add comment describing how hwdev is freed in error path · 792eac18
    Guenter Roeck authored
    The hwmon core registers the hwmon device before adding sensors to the
    thermal core. If that fails, the hwmon device is released and an error
    is returned to the caller. From the code flow, it appears to be necessary
    to free struct hwmon_device *, allocated with kzalloc(), in that
    situation. This is incorrect, since the data structure will be freed
    automatically in hwmon_dev_release() when device_unregister() is called.
    This used to result in a double free, which was found and fixed with
    commit 74e35127 ("hwmon: (core) Fix double-free in
    __hwmon_device_register()"). This is, however, not obvious; any reader
    may erroneously conclude that the data structure is not freed.
    
    Add comment explaining why kfree() is not necessary in this situation.
    Reported-by: default avatarEduardo Valentin <eduval@amazon.com>
    Cc: Eduardo Valentin <eduval@amazon.com>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    792eac18
hwmon.c 24.2 KB