]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: fix possible list corruption when unsubscribing from mux
authorAdam Sutton <dev@adamsutton.me.uk>
Wed, 25 Sep 2013 19:49:05 +0000 (20:49 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Wed, 25 Sep 2013 19:49:05 +0000 (20:49 +0100)
src/input/mpegts/mpegts_mux.c

index 1853d433b41a7b7b2a537d8bf69f3f7db5b6c0e5..2424d06aef69ffd7ff4b88dd50d6a28bf9f796e4 100644 (file)
@@ -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;
+    }
+  }
 }
 
 /* **************************************************************************