lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 5 Mar 2014 08:56:14 +0100 From: <erik.hugne@...csson.com> To: <netdev@...r.kernel.org>, <tipc-discussion@...ts.sourceforge.net>, <jon.maloy@...csson.com>, <maloy@...jonn.com> CC: <ying.xue@...driver.com>, <paul.gortmaker@...driver.com>, <richard.alpe@...csson.com> Subject: [PATCH net-next v2 2/6] tipc: fix connection refcount leak From: Ying Xue <ying.xue@...driver.com> When tipc_conn_sendmsg() calls tipc_conn_lookup() to query a connection instance, its reference count value is increased if it's found. But subsequently if it's found that the connection is closed, the work of sending message is not queued into its server send workqueue, and the connection reference count is not decreased. This will cause a reference count leak. To reproduce this problem, an application would need to open and closes topology server connections with high intensity. We fix this by immediately decrementing the connection reference count if a send fails due to the connection being closed. Signed-off-by: Ying Xue <ying.xue@...driver.com> Acked-by: Erik Hugne <erik.hugne@...csson.com> Reviewed-by: Jon Maloy <jon.maloy@...csson.com> --- net/tipc/server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/net/tipc/server.c b/net/tipc/server.c index 91423ca..0eb6301 100644 --- a/net/tipc/server.c +++ b/net/tipc/server.c @@ -430,10 +430,12 @@ int tipc_conn_sendmsg(struct tipc_server *s, int conid, list_add_tail(&e->list, &con->outqueue); spin_unlock_bh(&con->outqueue_lock); - if (test_bit(CF_CONNECTED, &con->flags)) + if (test_bit(CF_CONNECTED, &con->flags)) { if (!queue_work(s->send_wq, &con->swork)) conn_put(con); - + } else { + conn_put(con); + } return 0; } -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists