From d7197fa263c2ed47444fca7d7822e5e825908899 Mon Sep 17 00:00:00 2001 From: Gustavo Garcia Date: Fri, 30 May 2025 18:19:24 +0200 Subject: [PATCH] Add missing close socket when ioa_socket call fails (#1694) Fixes [#1071](https://github.com/coturn/coturn/issues/1071) Not sure how this case can happen but better to handle the error case. Co-authored-by: tyranron --- src/server/ns_turn_server.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/ns_turn_server.c b/src/server/ns_turn_server.c index fed6a40..9d302d0 100644 --- a/src/server/ns_turn_server.c +++ b/src/server/ns_turn_server.c @@ -4384,6 +4384,10 @@ static int create_relay_connection(turn_turnserver *server, ts_ur_super_session if (get_ioa_socket_type(newelem->s) != TCP_SOCKET) { if (register_callback_on_ioa_socket(server->e, newelem->s, IOA_EV_READ, peer_input_handler, ss, 0) < 0) { + IOA_CLOSE_SOCKET(newelem->s); + IOA_CLOSE_SOCKET(rtcp_s); + *err_code = 500; + *reason = (const uint8_t *)"Wrong initialization (internal error)"; return -1; } }