]> www.vanbest.org Git - sasc-ng.git/commitdiff
cardclient-cccam2: delete all caid/providers of a share
authorleslie <unknown>
Sun, 2 Aug 2009 13:14:08 +0000 (21:14 +0800)
committerleslie <unknown>
Sun, 2 Aug 2009 13:14:08 +0000 (21:14 +0800)
systems/cardclient/cccam2.c

index f219546e372fbb9adac95d09ebeffcc613edd81b..1ae4186cf536487e9aa7a5bb6338d26537f2debc 100644 (file)
@@ -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;