diff options
author | Miaoqian Lin <linmq006@gmail.com> | 2022-05-11 11:14:19 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-05-19 18:56:56 +0200 |
commit | 660ba678f9998aca6db74f2dd912fa5124f0fa31 (patch) | |
tree | dde53684885eccf41dd6c08c2390cac15756937d | |
parent | 077f5d900f62a817b155e614e7eb79220b1405de (diff) | |
download | lwn-660ba678f9998aca6db74f2dd912fa5124f0fa31.tar.gz lwn-660ba678f9998aca6db74f2dd912fa5124f0fa31.zip |
firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle
kobject_init_and_add() takes reference even when it fails.
According to the doc of kobject_init_and_add()
If this function returns an error, kobject_put() must be called to
properly clean up the memory associated with the object.
Fix this issue by calling kobject_put().
Fixes: 948af1f0bbc8 ("firmware: Basic dmi-sysfs support")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Link: https://lore.kernel.org/r/20220511071421.9769-1-linmq006@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/firmware/dmi-sysfs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c index 3a353776bd34..66727ad3361b 100644 --- a/drivers/firmware/dmi-sysfs.c +++ b/drivers/firmware/dmi-sysfs.c @@ -604,7 +604,7 @@ static void __init dmi_sysfs_register_handle(const struct dmi_header *dh, "%d-%d", dh->type, entry->instance); if (*ret) { - kfree(entry); + kobject_put(&entry->kobj); return; } |