commit 6a5431286b29f74a150aed3c2cb14c6744401e11 from: Stefan Sperling date: Fri Sep 05 15:02:13 2025 UTC plug memory leaks which are making gotwebd regress tests fail commit - 0f01ac5d813fe34a941ee33dbb19dba78ddbe966 commit + 6a5431286b29f74a150aed3c2cb14c6744401e11 blob - 1d2b63de026c502f7440177d20c1b3e81c019ae6 blob + 03f8e6941798467f7ecdd2e1de64cdc88bf28422 --- gotwebd/gotweb.c +++ gotwebd/gotweb.c @@ -1388,6 +1388,14 @@ gotweb_shutdown(void) srv = TAILQ_FIRST(&gotwebd_env->servers); TAILQ_REMOVE(&gotwebd_env->servers, srv, entry); free(srv); + } + + while (!TAILQ_EMPTY(&gotwebd_env->sockets)) { + struct socket *sock; + + sock = TAILQ_FIRST(&gotwebd_env->sockets); + TAILQ_REMOVE(&gotwebd_env->sockets, sock, entry); + free(sock); } free(gotwebd_env); blob - fb4dfe221b2b5e116cca94b8c78590b4759e2327 blob + 7e6aaf321f8905c1854851da0b0ffd2335b49ea9 --- gotwebd/gotwebd.c +++ gotwebd/gotwebd.c @@ -680,6 +680,13 @@ gotwebd_shutdown(void) TAILQ_REMOVE(&gotwebd_env->addresses, h, entry); free(h); } + while (!TAILQ_EMPTY(&gotwebd_env->sockets)) { + struct socket *sock; + + sock = TAILQ_FIRST(&gotwebd_env->sockets); + TAILQ_REMOVE(&gotwebd_env->sockets, sock, entry); + free(sock); + } while (!TAILQ_EMPTY(&gotwebd_env->servers)) { struct server *srv; blob - 0ddf1e382eb72e1f455b15c2ed1acf5408748f83 blob + 2d3df9cf55d52a941f6e5bb9603401f44514b73d --- gotwebd/sockets.c +++ gotwebd/sockets.c @@ -398,6 +398,14 @@ sockets_shutdown(void) h = TAILQ_FIRST(&gotwebd_env->addresses); TAILQ_REMOVE(&gotwebd_env->addresses, h, entry); free(h); + } + + while (!TAILQ_EMPTY(&gotwebd_env->sockets)) { + struct socket *sock; + + sock = TAILQ_FIRST(&gotwebd_env->sockets); + TAILQ_REMOVE(&gotwebd_env->sockets, sock, entry); + free(sock); } imsgbuf_clear(&gotwebd_env->iev_parent->ibuf);