From 63adaed02e73c49b12c25b3a1320ce38bff94a18 Mon Sep 17 00:00:00 2001 From: amet Date: Sat, 21 Sep 2013 01:54:30 +0400 Subject: [PATCH] cwc: fix logic error in multi card procesing at service startup --- src/descrambler/cwc.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) mode change 100644 => 100755 src/descrambler/cwc.c diff --git a/src/descrambler/cwc.c b/src/descrambler/cwc.c old mode 100644 new mode 100755 index e4b7d8f5..2edbe8a7 --- a/src/descrambler/cwc.c +++ b/src/descrambler/cwc.c @@ -2016,20 +2016,16 @@ cwc_service_start(service_t *t) if (ct->cs_service == (mpegts_service_t*)t && ct->cs_cwc == cwc) break; } - - LIST_FOREACH(pcard,&cwc->cwc_cards, cs_card){ - if(pcard->cwc_caid == 0) { - if (ct) cwc_service_destroy((th_descrambler_t*)ct); - continue; - } - - if(cwc_find_stream_by_caid(t, pcard->cwc_caid) == NULL) { - if (ct) cwc_service_destroy((th_descrambler_t*)ct); - continue; - } + LIST_FOREACH(pcard,&cwc->cwc_cards, cs_card) { + if((pcard->cwc_caid != 0) && cwc_find_stream_by_caid(t, pcard->cwc_caid)) + break; + } + if (!pcard) { + if (ct) cwc_service_destroy((th_descrambler_t*)ct); + continue; } - if (ct) break; + if (ct) continue; ct = calloc(1, sizeof(cwc_service_t)); tvhcsa_init(&ct->cs_csa);