From: Jasmin Jessich Date: Thu, 26 Oct 2017 18:51:39 +0000 (+0200) Subject: dvbcam: Fixed crash when a DVB CAM has been found X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=146956ed64ac1ef114c054f5e447a2b35c90756d;p=thirdparty%2Ftvheadend.git dvbcam: Fixed crash when a DVB CAM has been found Signed-off-by: Jasmin Jessich --- diff --git a/src/descrambler/caclient.c b/src/descrambler/caclient.c index fe1c8f043..9d7d9c4e6 100644 --- a/src/descrambler/caclient.c +++ b/src/descrambler/caclient.c @@ -19,6 +19,7 @@ #include "tvheadend.h" #include "settings.h" #include "caclient.h" +#include "dvbcam.h" const idclass_t *caclient_classes[] = { #if ENABLE_LINUXDVB_CA @@ -397,18 +398,20 @@ caclient_init(void) for (r = caclient_classes; *r; r++) idclass_register(*r); - if (!(c = hts_settings_load("caclient"))) - return; - HTSMSG_FOREACH(f, c) { - if (!(e = htsmsg_field_get_map(f))) - continue; - caclient_create(f->hmf_name, e, 0); + if ((c = hts_settings_load("caclient"))) { + HTSMSG_FOREACH(f, c) { + if (!(e = htsmsg_field_get_map(f))) + continue; + caclient_create(f->hmf_name, e, 0); + } + htsmsg_destroy(c); } - htsmsg_destroy(c); #if ENABLE_LINUXDVB_CA { caclient_t *cac; + + dvbcam_init(); pthread_mutex_lock(&caclients_mutex); TAILQ_FOREACH(cac, &caclients, cac_link) if (idnode_is_instance(&cac->cac_id, &caclient_dvbcam_class)) diff --git a/src/descrambler/dvbcam.h b/src/descrambler/dvbcam.h index 79d04b04c..8d1eede92 100644 --- a/src/descrambler/dvbcam.h +++ b/src/descrambler/dvbcam.h @@ -29,7 +29,7 @@ struct linuxdvb_ca; void dvbcam_init(void); void dvbcam_register_cam(struct linuxdvb_ca *lca, uint8_t slot, uint16_t * caids, int num_caids); void dvbcam_unregister_cam(struct linuxdvb_ca *lca, uint8_t slot); -void dvbcam_pmt_data(mpegts_service_t *s, const uint8_t *ptr, int len); +void dvbcam_pmt_data(struct mpegts_service *s, const uint8_t *ptr, int len); #endif