From 5cb31b81f71f4462fa8c1f89d3458413c1a6dea1 Mon Sep 17 00:00:00 2001 From: leslie Date: Sun, 2 Aug 2009 21:14:08 +0800 Subject: [PATCH] cardclient-cccam2: delete all caid/providers of a share --- systems/cardclient/cccam2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/systems/cardclient/cccam2.c b/systems/cardclient/cccam2.c index f219546..1ae4186 100644 --- a/systems/cardclient/cccam2.c +++ b/systems/cardclient/cccam2.c @@ -389,12 +389,13 @@ void cCardClientCCcam2::PacketAnalyzer(const unsigned char *data, int length) { int shareid=SHAREID(&data[4]); shares.Lock(); - for(cShare *s=shares.First(); s; s=shares.Next(s)) { + for(cShare *s=shares.First(); s;) { + cShare *n=shares.Next(s); if(s->ShareID()==shareid) { PRINTF(L_CC_CCCAM2,"REMOVE share %08x caid: %04x provider: %06x",s->ShareID(),s->CaID(),s->ProvID()); shares.Del(s); - break; } + s=n; } shares.Unlock(); break; -- 2.39.5