From 8a6deb8587779c304603c8fc66248e07cf2e90c8 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 17 Oct 2016 21:13:19 +0200 Subject: [PATCH] descrambler: add missing s_stream_mutex lock to descrambler_external() --- src/descrambler/descrambler.c | 2 ++ src/descrambler/dvbcam.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c index a3cd1f6d4..63c0b0030 100644 --- a/src/descrambler/descrambler.c +++ b/src/descrambler/descrambler.c @@ -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; diff --git a/src/descrambler/dvbcam.c b/src/descrambler/dvbcam.c index dd71599d0..c071e9529 100644 --- a/src/descrambler/dvbcam.c +++ b/src/descrambler/dvbcam.c @@ -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); } -- 2.47.3