diff --git a/src/sbbs3/sbbs_status.c b/src/sbbs3/sbbs_status.c index 8a2a3282afc9e56a89283f8a9310e81e038bf7a5..d94101cf7623307225a01683760b1e170c5f9ef1 100644 --- a/src/sbbs3/sbbs_status.c +++ b/src/sbbs3/sbbs_status.c @@ -112,6 +112,7 @@ static void sendsmsg(struct sbbs_status_msg *msg) if (ERROR_VALUE != EAGAIN) { closesocket(*sock); if (!os_init) { + os_init = true; listInit(&off_socks, 0); } listPushNode(&off_socks, sock); @@ -126,6 +127,7 @@ static void sendsmsg(struct sbbs_status_msg *msg) next = node->next; sock = node->data; client_off(*sock); + free(sock); protected_uint32_adjust(&active_clients, -1); update_clients(); }