]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts service: add asserts to master/slave linking
authorJaroslav Kysela <perex@perex.cz>
Fri, 22 Jan 2016 15:41:09 +0000 (16:41 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 22 Jan 2016 15:55:56 +0000 (16:55 +0100)
src/input/mpegts/mpegts_service.c
src/queue.h

index c1d1c6ab1b08cbec923dc2229edf8c4ca0257aee..35ca9510b4f1988e43f9efe8d85af3bb4edf385f 100644 (file)
@@ -965,6 +965,8 @@ mpegts_service_link ( mpegts_service_t *master, mpegts_service_t *slave )
 {
   pthread_mutex_lock(&slave->s_stream_mutex);
   pthread_mutex_lock(&master->s_stream_mutex);
+  assert(LIST_SAFE_ENTRY(master, s_masters_link));
+  assert(LIST_SAFE_ENTRY(slave, s_slaves_link));
   LIST_INSERT_HEAD(&slave->s_masters, master, s_masters_link);
   LIST_INSERT_HEAD(&master->s_slaves, slave, s_slaves_link);
   pthread_mutex_unlock(&master->s_stream_mutex);
index 1551ea3eff114ef1a6dc18560e71a3102c63e7eb..3388b46fc343fb54068560d3a3e91c780842edf6 100644 (file)
@@ -36,6 +36,9 @@
                 LIST_ENTRY_INIT(elm, field); \
         }
 
+#define LIST_SAFE_ENTRY(elm, field) \
+        ((elm)->field.le_next == NULL && (elm)->field.le_prev == NULL)
+
 #define LIST_MOVE(newhead, oldhead, field) do {                                \
         if((oldhead)->lh_first) {                                      \
            (oldhead)->lh_first->field.le_prev = &(newhead)->lh_first;  \