[PATCH] ipmi: Fix sysfs file leak on maintenance_mode creation failure

Felix Gu posted 1 patch 6 days ago
drivers/char/ipmi/ipmi_msghandler.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] ipmi: Fix sysfs file leak on maintenance_mode creation failure
Posted by Felix Gu 6 days ago
When device_create_file() for maintenance_mode_devattr fails, the error
handler only removes nr_users_devattr but forgets to remove
nr_msgs_devattr, causing a sysfs file leak.

Fixes: 627118470fcc ("ipmi: Add a maintenance mode sysfs file")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
 drivers/char/ipmi/ipmi_msghandler.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index 869ac87a4b6a..f59db5df69da 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -3734,6 +3734,7 @@ int ipmi_add_smi(struct module         *owner,
 	sysfs_attr_init(&intf->maintenance_mode_devattr.attr);
 	rv = device_create_file(intf->si_dev, &intf->maintenance_mode_devattr);
 	if (rv) {
+		device_remove_file(intf->si_dev, &intf->nr_msgs_devattr);
 		device_remove_file(intf->si_dev, &intf->nr_users_devattr);
 		goto out_err_bmc_reg;
 	}

---
base-commit: 66ba480978ce390e631e870b740a3406e3eb6b01
change-id: 20260327-ipmi-4851eac6305f

Best regards,
-- 
Felix Gu <ustc.gu@gmail.com>
Re: [PATCH] ipmi: Fix sysfs file leak on maintenance_mode creation failure
Posted by Markus Elfring 4 days, 19 hours ago
…
> +++ b/drivers/char/ipmi/ipmi_msghandler.c
> @@ -3734,6 +3734,7 @@ int ipmi_add_smi(struct module         *owner,
>  	sysfs_attr_init(&intf->maintenance_mode_devattr.attr);
>  	rv = device_create_file(intf->si_dev, &intf->maintenance_mode_devattr);
>  	if (rv) {
> +		device_remove_file(intf->si_dev, &intf->nr_msgs_devattr);
>  		device_remove_file(intf->si_dev, &intf->nr_users_devattr);
>  		goto out_err_bmc_reg;
>  	}

How do you think about to avoid a bit of duplicate source code here?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst?h=v7.0-rc5#n526

Regards,
Markus