From: Jaroslav Kysela Date: Fri, 11 Jul 2014 14:28:22 +0000 (+0200) Subject: mpegts: tables - add mutex protection to mpegts_table_add() X-Git-Tag: v4.1~1761 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=efdfaf1376cc19086a46f33eb8b1d503cc063e91;p=thirdparty%2Ftvheadend.git mpegts: tables - add mutex protection to mpegts_table_add() --- diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index c3b6f7bbc..b4c0c2589 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);