Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

qemu_fw_cfg: don't leak kobj on init error

If platform_driver_register fails, we should
cleanup fw_cfg_top_ko before exiting.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Gabriel Somlo <somlo@cmu.edu>

+7 -1
+7 -1
drivers/firmware/qemu_fw_cfg.c
··· 727 727 728 728 static int __init fw_cfg_sysfs_init(void) 729 729 { 730 + int ret; 731 + 730 732 /* create /sys/firmware/qemu_fw_cfg/ top level directory */ 731 733 fw_cfg_top_ko = kobject_create_and_add("qemu_fw_cfg", firmware_kobj); 732 734 if (!fw_cfg_top_ko) 733 735 return -ENOMEM; 734 736 735 - return platform_driver_register(&fw_cfg_sysfs_driver); 737 + ret = platform_driver_register(&fw_cfg_sysfs_driver); 738 + if (ret) 739 + fw_cfg_kobj_cleanup(fw_cfg_top_ko); 740 + 741 + return ret; 736 742 } 737 743 738 744 static void __exit fw_cfg_sysfs_exit(void)