diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-08-01 23:38:35 +0100 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-08-01 23:38:35 +0100 |
commit | b0b5cad4968b09b805b475b41c0a9005f79c9563 (patch) | |
tree | cee000d436a1e3ac0986720a5d72d9e5fa4fa3e2 /server-fn.c | |
parent | 965edf8a5c985d760b1e037be8182b353e9139c9 (diff) | |
download | rtmux-b0b5cad4968b09b805b475b41c0a9005f79c9563.tar.gz rtmux-b0b5cad4968b09b805b475b41c0a9005f79c9563.tar.bz2 rtmux-b0b5cad4968b09b805b475b41c0a9005f79c9563.zip |
Grouped sessions were being leaked on destroy, correctly free them.
Diffstat (limited to 'server-fn.c')
-rw-r--r-- | server-fn.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/server-fn.c b/server-fn.c index 86e2054e..738a61da 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); + } } } |