From 42fb10e771e23c58f1536bca28ddb3f85781ed2b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 9 Nov 2018 09:12:00 +0100 Subject: [PATCH] cclient: cc_remove_card - move state to ECM_INIT when active card is removed, issue #5314 --- src/descrambler/cclient.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/descrambler/cclient.c b/src/descrambler/cclient.c index 7fba84fcb..ee5a3a36e 100644 --- a/src/descrambler/cclient.c +++ b/src/descrambler/cclient.c @@ -223,7 +223,7 @@ cc_remove_card(cclient_t *cc, cc_card_data_t *pcard) cc_ecm_section_t *es, *esn; emm_provider_t *emmp; char buf[256]; - int i; + int i, changed = 0; tvhinfo(cc->cc_subsys, "%s: card %s removed", cc->cc_name, cc_get_card_name(pcard, buf, sizeof(buf))); @@ -238,6 +238,7 @@ cc_remove_card(cclient_t *cc, cc_card_data_t *pcard) emmp = pcard->cs_ra.providers; for (i = 0; i < pcard->cs_ra.providers_count; i++, emmp++) { if (emmp->id == es->es_provid) { + changed = 1; cc_free_ecm_section(es); break; } @@ -249,6 +250,11 @@ cc_remove_card(cclient_t *cc, cc_card_data_t *pcard) } cc_free_card(pcard); + + if (changed) { + ct->cs_capid = 0xffff; + ct->ecm_state = ECM_INIT; + } } /** -- 2.47.2