From: Adam Sutton Date: Wed, 25 Sep 2013 19:49:05 +0000 (+0100) Subject: mpegts: fix possible list corruption when unsubscribing from mux X-Git-Tag: v4.1~2470 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9d6a56a0d3e793fa89440cbb4ead87e4f693bc14;p=thirdparty%2Ftvheadend.git mpegts: fix possible list corruption when unsubscribing from mux --- diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 1853d433b..2424d06ae 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -690,12 +690,17 @@ mpegts_mux_unsubscribe_by_name ( mpegts_mux_t *mm, const char *name ) { mpegts_mux_instance_t *mmi; - th_subscription_t *s; + th_subscription_t *s, *n; - LIST_FOREACH(mmi, &mm->mm_instances, mmi_mux_link) - LIST_FOREACH(s, &mmi->mmi_subs, ths_mmi_link) + LIST_FOREACH(mmi, &mm->mm_instances, mmi_mux_link) { + s = LIST_FIRST(&mmi->mmi_subs); + while (s) { + n = LIST_NEXT(s, ths_mmi_link); if (!strcmp(s->ths_title, name)) subscription_unsubscribe(s); + s = n; + } + } } /* **************************************************************************