From 0f3abebd019130a6e4e69e53345f403ba802edfb Mon Sep 17 00:00:00 2001 From: Max Romanov Date: Sun, 9 Aug 2020 10:22:05 +0300 Subject: Fixing connection remote sockaddr leakage. Earlier patch 1bf971f83571 fixes connection leakage. But connection free requires separate remote sockaddr release. --- src/nxt_router.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nxt_router.c b/src/nxt_router.c index b3e326d0..8b3f3daf 100644 --- a/src/nxt_router.c +++ b/src/nxt_router.c @@ -3177,8 +3177,12 @@ nxt_router_listen_event_release(nxt_task_t *task, nxt_listen_event_t *lev, nxt_debug(task, "listen event count: %D", lev->count); + engine = task->thread->engine; + if (--lev->count == 0) { if (lev->next != NULL) { + nxt_sockaddr_cache_free(engine, lev->next); + nxt_conn_free(task, lev->next); } @@ -3189,8 +3193,6 @@ nxt_router_listen_event_release(nxt_task_t *task, nxt_listen_event_t *lev, nxt_router_conf_release(task, joint); } - engine = task->thread->engine; - if (engine->shutdown && nxt_queue_is_empty(&engine->joints)) { nxt_thread_exit(task->thread); } -- cgit