[Ocfs2-devel] [PATCH] ocfs2: Fix memory leak in ocfs2_stack_glue_init()
Joseph Qi
joseph.qi at linux.alibaba.com
Tue Nov 1 11:15:33 UTC 2022
On 11/1/22 2:47 PM, Shang XiaoJing wrote:
> ocfs2_table_header should be free in ocfs2_stack_glue_init() if
> ocfs2_sysfs_init() failed, otherwise kmemleak will report memleak.
>
> BUG: memory leak
> unreferenced object 0xffff88810eeb5800 (size 128):
> comm "modprobe", pid 4507, jiffies 4296182506 (age 55.888s)
> hex dump (first 32 bytes):
> c0 40 14 a0 ff ff ff ff 00 00 00 00 01 00 00 00 . at ..............
> 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace:
> [<000000001e59e1cd>] __register_sysctl_table+0xca/0xef0
> [<00000000c04f70f7>] 0xffffffffa0050037
> [<000000001bd12912>] do_one_initcall+0xdb/0x480
> [<0000000064f766c9>] do_init_module+0x1cf/0x680
> [<000000002ba52db0>] load_module+0x6441/0x6f20
> [<000000009772580d>] __do_sys_finit_module+0x12f/0x1c0
> [<00000000380c1f22>] do_syscall_64+0x3f/0x90
> [<000000004cf473bc>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
>
> Fixes: 3878f110f71a ("ocfs2: Move the hb_ctl_path sysctl into the stack glue.")
> Signed-off-by: Shang XiaoJing <shangxiaojing at huawei.com>
Looks good.
Reviewed-by: Joseph Qi <joseph.qi at linux.alibaba.com>
> ---
> fs/ocfs2/stackglue.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
> index 317126261523..a8d5ca98fa57 100644
> --- a/fs/ocfs2/stackglue.c
> +++ b/fs/ocfs2/stackglue.c
> @@ -669,6 +669,8 @@ static struct ctl_table_header *ocfs2_table_header;
>
> static int __init ocfs2_stack_glue_init(void)
> {
> + int ret;
> +
> strcpy(cluster_stack_name, OCFS2_STACK_PLUGIN_O2CB);
>
> ocfs2_table_header = register_sysctl("fs/ocfs2/nm", ocfs2_nm_table);
> @@ -678,7 +680,11 @@ static int __init ocfs2_stack_glue_init(void)
> return -ENOMEM; /* or something. */
> }
>
> - return ocfs2_sysfs_init();
> + ret = ocfs2_sysfs_init();
> + if (ret)
> + unregister_sysctl_table(ocfs2_table_header);
> +
> + return ret;
> }
>
> static void __exit ocfs2_stack_glue_exit(void)
More information about the Ocfs2-devel
mailing list