Skip to contentSkip to conversation

qemu_fw_cfg: don't leak kobj on init error

PATCH In review Michael S. Tsirkin 2 participants 2 messages Apr 3, 2016 – Apr 6, 2016 Qemu machine emulator and virtualizer support

lore
Share & tools
lore

Michael S. Tsirkin

author maintainer
#0 lore raw

PATCH 1/1 qemu_fw_cfg: don't leak kobj on init error

If platform_driver_register fails, we should
cleanup fw_cfg_top_ko before exiting.

---
 drivers/firmware/qemu_fw_cfg.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/firmware/qemu_fw_cfg.c +7 -1
index fedbff5..e4c4714 100644
@@ -727,12 +727,18 @@ device_param_cb(mmio, &fw_cfg_cmdline_param_ops, NULL, S_IRUSR);
 
 static int __init fw_cfg_sysfs_init(void)
 {
+	int ret;
+
 	/* create /sys/firmware/qemu_fw_cfg/ top level directory */
 	fw_cfg_top_ko = kobject_create_and_add("qemu_fw_cfg", firmware_kobj);
 	if (!fw_cfg_top_ko)
 		return -ENOMEM;
 
-	return platform_driver_register(&fw_cfg_sysfs_driver);
+	ret = platform_driver_register(&fw_cfg_sysfs_driver);
+	if (ret)
+		fw_cfg_kobj_cleanup(fw_cfg_top_ko);
+
+	return ret;
 }
 
 static void __exit fw_cfg_sysfs_exit(void)
Signature · 1 line
MST
Acked-by on v1 1/1
#1 lore raw
Quoted 4 lines · Michael S. Tsirkin

If platform_driver_register fails, we should
cleanup fw_cfg_top_ko before exiting.

Thanks,
--Gabriel

Quoted 30 lines
---
 drivers/firmware/qemu_fw_cfg.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/firmware/qemu_fw_cfg.c +7 -1
index fedbff5..e4c4714 100644
@@ -727,12 +727,18 @@ device_param_cb(mmio, &fw_cfg_cmdline_param_ops, NULL, S_IRUSR);
 
 static int __init fw_cfg_sysfs_init(void)
 {
+	int ret;
+
 	/* create /sys/firmware/qemu_fw_cfg/ top level directory */
 	fw_cfg_top_ko = kobject_create_and_add("qemu_fw_cfg", firmware_kobj);
 	if (!fw_cfg_top_ko)
 		return -ENOMEM;
 
-	return platform_driver_register(&fw_cfg_sysfs_driver);
+	ret = platform_driver_register(&fw_cfg_sysfs_driver);
+	if (ret)
+		fw_cfg_kobj_cleanup(fw_cfg_top_ko);
+
+	return ret;
 }
 
 static void __exit fw_cfg_sysfs_exit(void)
Signature · 1 line
MST