capmt: fix CA_SET_PID for index == -1 (multiple services from one mux)

This commit is contained in:
Jaroslav Kysela 2014-06-18 19:26:20 +02:00
parent 919a9063d5
commit 95b1e9190e

View file

@ -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);