2022-07-15 06:32:47

by Hangyu Hua

[permalink] [raw]
Subject: [PATCH] ipc: mqueue: fix possible memory leak in init_mqueue_fs()

commit db7cfc380900 ("ipc: Free mq_sysctls if ipc namespace creation
failed")

Here's a similar memory leak to the one fixed by the patch above.
retire_mq_sysctls need to be called when init_mqueue_fs fails after
setup_mq_sysctls.

Fixes: dc55e35f9e81 ("ipc: Store mqueue sysctls in the ipc namespace")
Signed-off-by: Hangyu Hua <[email protected]>
---
ipc/mqueue.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 12ad7860bb88..83370fef8879 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -1746,6 +1746,7 @@ static int __init init_mqueue_fs(void)
unregister_filesystem(&mqueue_fs_type);
out_sysctl:
kmem_cache_destroy(mqueue_inode_cachep);
+ retire_mq_sysctls(&init_ipc_ns);
return error;
}

--
2.25.1


2022-07-15 18:56:23

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH] ipc: mqueue: fix possible memory leak in init_mqueue_fs()

Hangyu Hua <[email protected]> writes:

> commit db7cfc380900 ("ipc: Free mq_sysctls if ipc namespace creation
> failed")
>
> Here's a similar memory leak to the one fixed by the patch above.
> retire_mq_sysctls need to be called when init_mqueue_fs fails after
> setup_mq_sysctls.

Alex can you review this change?

> Fixes: dc55e35f9e81 ("ipc: Store mqueue sysctls in the ipc namespace")
> Signed-off-by: Hangyu Hua <[email protected]>
> ---
> ipc/mqueue.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/ipc/mqueue.c b/ipc/mqueue.c
> index 12ad7860bb88..83370fef8879 100644
> --- a/ipc/mqueue.c
> +++ b/ipc/mqueue.c
> @@ -1746,6 +1746,7 @@ static int __init init_mqueue_fs(void)
> unregister_filesystem(&mqueue_fs_type);
> out_sysctl:
> kmem_cache_destroy(mqueue_inode_cachep);
> + retire_mq_sysctls(&init_ipc_ns);
> return error;
> }

Thanks,
Eric

2022-07-19 22:28:24

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH] ipc: mqueue: fix possible memory leak in init_mqueue_fs()

Hangyu Hua <[email protected]> writes:

> commit db7cfc380900 ("ipc: Free mq_sysctls if ipc namespace creation
> failed")
>
> Here's a similar memory leak to the one fixed by the patch above.
> retire_mq_sysctls need to be called when init_mqueue_fs fails after
> setup_mq_sysctls.

Applied. Thank you.

>
> Fixes: dc55e35f9e81 ("ipc: Store mqueue sysctls in the ipc namespace")
> Signed-off-by: Hangyu Hua <[email protected]>
> ---
> ipc/mqueue.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/ipc/mqueue.c b/ipc/mqueue.c
> index 12ad7860bb88..83370fef8879 100644
> --- a/ipc/mqueue.c
> +++ b/ipc/mqueue.c
> @@ -1746,6 +1746,7 @@ static int __init init_mqueue_fs(void)
> unregister_filesystem(&mqueue_fs_type);
> out_sysctl:
> kmem_cache_destroy(mqueue_inode_cachep);
> + retire_mq_sysctls(&init_ipc_ns);
> return error;
> }