From 2c7ca0fddb0787cb6d1beacf2775673fb0ad8c78 Mon Sep 17 00:00:00 2001 From: Scott K Logan Date: Sun, 17 Mar 2024 20:02:49 -0500 Subject: [PATCH] Fix callsign cache hash map inserts From what I can tell, this could result in callsign cache misses, but more importantly could cause a cycle in the linked lists that results in an infinite loop. I believe this was only possible on proxy configurations with multiple slots. --- src/proxy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/proxy.c b/src/proxy.c index c4a6794..64e4c53 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -412,7 +412,7 @@ static void proxy_worker_func(struct worker_handle *wh) pc->prev_by_call_ptr = &priv->clients_by_call[hash]; pc->next_by_call = priv->clients_by_call[hash]; if (pc->next_by_call != NULL) - pc->next_by_call->prev_by_call_ptr = &pc->next; + pc->next_by_call->prev_by_call_ptr = &pc->next_by_call; priv->clients_by_call[hash] = pc; mutex_unlock(&priv->idle_clients_mutex);