]> git.baikalelectronics.ru Git - kernel.git/commitdiff
rds: memory leak in __rds_conn_create()
authorHangyu Hua <hbh25y@gmail.com>
Tue, 14 Dec 2021 10:46:59 +0000 (18:46 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Dec 2021 12:51:52 +0000 (12:51 +0000)
__rds_conn_create() did not release conn->c_path when loop_trans != 0 and
trans->t_prefer_loopback != 0 and is_outgoing == 0.

Fixes: 4fae91d8f412 ("RDS tcp loopback connection can hang")
Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
Reviewed-by: Sharath Srinivasan <sharath.srinivasan@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/connection.c

index a3bc4b54d4910567c915f41cd6bc44f279eaadf3..b4cc699c5fad37736a31619db2b0ac41babd164e 100644 (file)
@@ -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;