]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
descrambler: add missing s_stream_mutex lock to descrambler_external()
authorJaroslav Kysela <perex@perex.cz>
Mon, 17 Oct 2016 19:13:19 +0000 (21:13 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 17 Oct 2016 19:13:19 +0000 (21:13 +0200)
src/descrambler/descrambler.c
src/descrambler/dvbcam.c

index a3cd1f6d48bac9399021649d170f30fd2384d16a..63c0b00306a50cd43d3bec7e07b26159d633e1fa 100644 (file)
@@ -422,6 +422,8 @@ descrambler_external ( service_t *t, int state )
 {
   th_descrambler_runtime_t *dr;
 
+  lock_assert(&t->s_stream_mutex);
+
   if (t == NULL || (dr = t->s_descramble) == NULL)
     return;
   dr->dr_external = state ? 1 : 0;
index dd71599d0fcb3a6c8791266aaf6ad12924a1b708..c071e952953259668f47481c06d656b361378a89 100644 (file)
@@ -187,7 +187,9 @@ end_of_search_for_cam:
 
 enqueue:
   if (as->ca) {
+    pthread_mutex_lock(&s->s_stream_mutex);
     descrambler_external((service_t *)s, 1);
+    pthread_mutex_unlock(&s->s_stream_mutex);
     linuxdvb_ca_enqueue_capmt(as->ca, as->slot, as->last_pmt, as->last_pmt_len,
                               list_mgmt, CA_PMT_CMD_ID_OK_DESCRAMBLING);
   }