]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts input thread: protect mm_update_pids_flag access
authorJaroslav Kysela <perex@perex.cz>
Tue, 8 Mar 2016 19:40:03 +0000 (20:40 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 8 Mar 2016 19:40:03 +0000 (20:40 +0100)
src/input/mpegts/mpegts_input.c

index 9307800ad5363586144c3aa14b83dbb4e724fde5..131ee9c5bcb525b25ca86a283e5a4318d942ec76 100644 (file)
@@ -1447,6 +1447,7 @@ mpegts_input_thread ( void * p )
   mpegts_packet_t *mp;
   mpegts_input_t  *mi = p;
   size_t bytes = 0;
+  int update_pids;
   char buf[256];
 
   mi->mi_display_name(mi, buf, sizeof(buf));
@@ -1476,8 +1477,9 @@ mpegts_input_thread ( void * p )
       pthread_mutex_lock(&mi->mi_output_lock);
     }
     bytes += mpegts_input_process(mi, mp);
+    update_pids = mp->mp_mux && mp->mp_mux->mm_update_pids_flag;
     pthread_mutex_unlock(&mi->mi_output_lock);
-    if (mp->mp_mux && mp->mp_mux->mm_update_pids_flag) {
+    if (update_pids) {
       pthread_mutex_lock(&global_lock);
       mpegts_mux_update_pids(mp->mp_mux);
       pthread_mutex_unlock(&global_lock);