[PATCH] firmware: dmi-sysfs: Add clean-up operations to fix refcount leak

From: James Bond
Date: Tue Aug 04 2020 - 14:36:59 EST


According to the documentation of function kobject_init_and_add(),
when this function returns an error, kobject_put() must be called
to properly clean up the memory associated with the object.

Fixes: 925a1da7477f ("firmware: Break out system_event_log in dmi-sysfs")
Signed-off-by: James Bond <jameslouisebond@xxxxxxxxx>
---
drivers/firmware/dmi-sysfs.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c
index 8b8127fa8955..848b6a0f94eb 100644
--- a/drivers/firmware/dmi-sysfs.c
+++ b/drivers/firmware/dmi-sysfs.c
@@ -457,8 +457,10 @@ static int dmi_system_event_log(struct dmi_sysfs_entry *entry)
&dmi_system_event_log_ktype,
&entry->kobj,
"system_event_log");
- if (ret)
+ if (ret) {
+ kobject_put(entry->child);
goto out_free;
+ }

ret = sysfs_create_bin_file(entry->child, &dmi_sel_raw_attr);
if (ret)
--
2.17.1