From d3830e622f94f0826e2169eca1f920abc234a412 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 10 Oct 2013 11:46:28 +0000 Subject: Grouped sessions were being leaked on destroy, correctly free them. --- server-fn.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'server-fn.c') diff --git a/server-fn.c b/server-fn.c index efb95acd..fb0eadd6 100644 --- a/server-fn.c +++ b/server-fn.c @@ -398,14 +398,15 @@ void server_destroy_session_group(struct session *s) { struct session_group *sg; + struct session *s1; if ((sg = session_group_find(s)) == NULL) server_destroy_session(s); else { - TAILQ_FOREACH(s, &sg->sessions, gentry) + TAILQ_FOREACH_SAFE(s, &sg->sessions, gentry, s1) { server_destroy_session(s); - TAILQ_REMOVE(&session_groups, sg, entry); - free(sg); + session_destroy(s); + } } } -- cgit v1.2.3