From 3e9b350110357e7b9555ad910986dc53edf554ad Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Mon, 29 Apr 2024 11:14:23 +0200 Subject: fixed potential deadlock --- ecp/src/ecp/vconn/vconn.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ecp') diff --git a/ecp/src/ecp/vconn/vconn.c b/ecp/src/ecp/vconn/vconn.c index 39da365..337c693 100644 --- a/ecp/src/ecp/vconn/vconn.c +++ b/ecp/src/ecp/vconn/vconn.c @@ -114,13 +114,17 @@ static ssize_t handle_relay(ECPConnection *conn, unsigned char *msg, size_t msg_ if (_idx != vconn->vconn_next_curr) insert_next = 1; if (vconn->vlink_next.valid) conn_next = ecp_ht_search(sock->vconn_table.vlink_keys, &vconn->vlink_next.public); + +#ifdef ECP_WITH_PTHREAD + pthread_mutex_unlock(&conn->mutex); +#endif + if (conn_next) { _rv = ecp_conn_refcount_inc(conn_next); if (_rv) conn_next = NULL; } #ifdef ECP_WITH_PTHREAD - pthread_mutex_unlock(&conn->mutex); pthread_mutex_unlock(&sock->vconn_table.vlink_keys_mutex); #endif -- cgit v1.2.3