2021-12-14 10:47:16

by Hangyu Hua

[permalink] [raw]
Subject: [PATCH net] rds: memory leak in __rds_conn_create()

__rds_conn_create() did not release conn->c_path when loop_trans != 0 and
trans->t_prefer_loopback != 0 and is_outgoing == 0.

Signed-off-by: Hangyu Hua <[email protected]>
---
net/rds/connection.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/rds/connection.c b/net/rds/connection.c
index a3bc4b54d491..b4cc699c5fad 100644
--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -253,6 +253,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
* should end up here, but if it
* does, reset/destroy the connection.
*/
+ kfree(conn->c_path);
kmem_cache_free(rds_conn_slab, conn);
conn = ERR_PTR(-EOPNOTSUPP);
goto out;
--
2.25.1



2021-12-14 11:10:01

by Sharath Srinivasan

[permalink] [raw]
Subject: Re: [PATCH net] rds: memory leak in __rds_conn_create()

On 12/14/21 02:46, Hangyu Hua wrote:

> __rds_conn_create() did not release conn->c_path when loop_trans != 0 and
> trans->t_prefer_loopback != 0 and is_outgoing == 0.

Probably a good idea to include:

Fixes: aced3ce57cd3 ("RDS tcp loopback connection can hang")

> Signed-off-by: Hangyu Hua <[email protected]>
With that,

Reviewed-by: Sharath Srinivasan <[email protected]>

Thanks,
Sharath

> ---
> net/rds/connection.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/rds/connection.c b/net/rds/connection.c
> index a3bc4b54d491..b4cc699c5fad 100644
> --- a/net/rds/connection.c
> +++ b/net/rds/connection.c
> @@ -253,6 +253,7 @@ static struct rds_connection *__rds_conn_create(struct net *net,
> * should end up here, but if it
> * does, reset/destroy the connection.
> */
> + kfree(conn->c_path);
> kmem_cache_free(rds_conn_slab, conn);
> conn = ERR_PTR(-EOPNOTSUPP);
> goto out;

2021-12-14 13:00:16

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net] rds: memory leak in __rds_conn_create()

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <[email protected]>:

On Tue, 14 Dec 2021 18:46:59 +0800 you wrote:
> __rds_conn_create() did not release conn->c_path when loop_trans != 0 and
> trans->t_prefer_loopback != 0 and is_outgoing == 0.
>
> Signed-off-by: Hangyu Hua <[email protected]>
> ---
> net/rds/connection.c | 1 +
> 1 file changed, 1 insertion(+)

Here is the summary with links:
- [net] rds: memory leak in __rds_conn_create()
https://git.kernel.org/netdev/net/c/5f9562ebe710

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



2021-12-14 17:39:43

by Santosh Shilimkar

[permalink] [raw]
Subject: Re: [PATCH net] rds: memory leak in __rds_conn_create()



> On Dec 14, 2021, at 2:46 AM, Hangyu Hua <[email protected]> wrote:
>
> __rds_conn_create() did not release conn->c_path when loop_trans != 0 and
> trans->t_prefer_loopback != 0 and is_outgoing == 0.
>
> Signed-off-by: Hangyu Hua <[email protected]>
> ---
> net/rds/connection.c | 1 +
> 1 file changed, 1 insertion(+)

Looks good to me. Thanks !!

Acked-by: Santosh Shilimkar <[email protected]>