From 97ab683654e6ba1b2826fca2040577bb0e4f8b0b Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Tue, 27 Oct 2026 00:03:23 +0300 Subject: [PATCH] Event loops: a relayed client released once The ends of a client relayed as callbacks called releaseparam() and then freeparam(), which releases it again: the connection limits' slot was given back twice (see the commit before). freeparam() alone. Co-Authored-By: Claude Opus 5.5 --- src/mainloop.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/mainloop.c b/src/mainloop.c index f39104a..ff080db 100644 --- a/src/mainloop.c +++ b/src/mainloop.c @@ -888,14 +888,12 @@ static void cbmapfinish(void *arg){ param->res = (res == -2)? 21 : res; param->maptail = NULL; dolog(param, NULL); - releaseparam(param); freeparam(param); return; } if(res == -2) res = sockmap(param, timeo, usesplice); param->res = res; if(param->maptail) param->maptail(param, param->maptaildata); - releaseparam(param); freeparam(param); } @@ -923,7 +921,6 @@ static void cbmapdone(struct cbmap *m){ free(m); param->maptail = NULL; dolog(param, NULL); - releaseparam(param); freeparam(param); } }