From efdfaf1376cc19086a46f33eb8b1d503cc063e91 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 11 Jul 2014 16:28:22 +0200 Subject: [PATCH] mpegts: tables - add mutex protection to mpegts_table_add() --- src/input/mpegts/mpegts_table.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index c3b6f7bb..b4c0c258 100644 --- a/src/input/mpegts/mpegts_table.c +++ b/src/input/mpegts/mpegts_table.c @@ -136,6 +136,7 @@ mpegts_table_add int subscribe = 1; /* Check for existing */ + pthread_mutex_lock(&mm->mm_tables_lock); LIST_FOREACH(mt, &mm->mm_tables, mt_link) { if (mt->mt_opaque != opaque) continue; @@ -154,11 +155,16 @@ mpegts_table_add } else { if (strcmp(mt->mt_name, name)) continue; - if (!(flags & MT_SKIPSUBS) && !mt->mt_subscribed) + if (!(flags & MT_SKIPSUBS) && !mt->mt_subscribed) { + pthread_mutex_unlock(&mm->mm_tables_lock); mm->mm_open_table(mm, mt, 1); + return mt; + } } + pthread_mutex_unlock(&mm->mm_tables_lock); return mt; } + pthread_mutex_unlock(&mm->mm_tables_lock); tvhtrace("mpegts", "add %s table %02X/%02X (%d) pid %04X (%d)", name, tableid, mask, tableid, pid, pid);