]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
kernel/module: Fix memleak in module_add_modinfo_attrs()
authorYueHaibing <yuehaibing@huawei.com>
Sat, 28 Dec 2019 11:54:55 +0000 (19:54 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:38:04 +0000 (08:38 +0100)
[ Upstream commit f6d061d617124abbd55396a3bc37b9bf7d33233c ]

In module_add_modinfo_attrs() if sysfs_create_file() fails
on the first iteration of the loop (so i = 0), we forget to
free the modinfo_attrs.

Fixes: bc6f2a757d52 ("kernel/module: Fix mem leak in module_add_modinfo_attrs")
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/module.c

index b56f3224b161b3f01f181bba97fd57e7eb04773d..8785e31c2dd0fea9fc2457dc956a57cd03e29789 100644 (file)
@@ -1781,6 +1781,8 @@ static int module_add_modinfo_attrs(struct module *mod)
 error_out:
        if (i > 0)
                module_remove_modinfo_attrs(mod, --i);
+       else
+               kfree(mod->modinfo_attrs);
        return error;
 }