From b5d19603092a4f4c978e731307bea77b890ea6a5 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Tue, 29 Dec 2020 23:01:42 -0800 Subject: [PATCH] Connection and logon linked lists need re-init for every recycle Each list mutex is destroyed in the call to listFree() in cleanup(). Without a call to listInit(), the mutex is not recreated and thus the lists are no longer mutex-protected after a recycle. No negative consequences were observed from this issue, but a potential issue it is (was). --- src/sbbs3/mailsrvr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index b7d15523a2..627932d934 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -6086,10 +6086,10 @@ void DLLCALL mail_server(void* arg) SetThreadName("sbbs/mailServer"); protected_uint32_init(&thread_count, 0); - listInit(¤t_logins, LINK_LIST_MUTEX); - listInit(¤t_connections, LINK_LIST_MUTEX); do { + listInit(¤t_logins, LINK_LIST_MUTEX); + listInit(¤t_connections, LINK_LIST_MUTEX); protected_uint32_init(&active_clients, 0); /* Setup intelligent defaults */ -- GitLab