From 95b1e9190eee165b61289d548d60e759b0c7c573 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 18 Jun 2014 19:26:20 +0200 Subject: [PATCH] capmt: fix CA_SET_PID for index == -1 (multiple services from one mux) --- src/descrambler/capmt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/descrambler/capmt.c b/src/descrambler/capmt.c index 058615bf..6e7a475a 100644 --- a/src/descrambler/capmt.c +++ b/src/descrambler/capmt.c @@ -1012,8 +1012,13 @@ capmt_analyze_cmd(capmt_t *capmt, int adapter, sbuf_t *sb, int offset) memset(cai, 0, sizeof(*cai)); cai->pid = pid; } else if (index < 0) { - memset(&capmt->capmt_adapters[adapter].ca_info, 0, - sizeof(capmt->capmt_adapters[adapter].ca_info)); + for (index = 0; index < MAX_INDEX; index++) { + cai = &capmt->capmt_adapters[adapter].ca_info[index]; + if (cai->pid == pid) { + memset(cai, 0, sizeof(*cai)); + break; + } + } } else tvhlog(LOG_ERR, "capmt", "Invalid index %d in CA_SET_PID (%d) for adapter %d", index, MAX_INDEX, adapter);