]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Make IPTV PAT parser skip over services with service_id set to 0
authorAndreas Öman <andreas@lonelycoder.com>
Sun, 9 Jan 2011 21:23:05 +0000 (22:23 +0100)
committerAndreas Öman <andreas@lonelycoder.com>
Sun, 9 Jan 2011 21:23:05 +0000 (22:23 +0100)
Ticket #318

src/iptv_input.c

index 70bdb6f47f1a220078896ca4e5025c8ad0757ed2..8a4b2bd7e9341bd405692b441999578a2be7b6b6 100644 (file)
@@ -60,13 +60,18 @@ iptv_got_pat(const uint8_t *ptr, size_t len, void *aux)
   len -= 8;
   ptr += 8;
 
-  if(len < 4)
-    return;
+  while(len >= 4) {
 
-  prognum =  ptr[0]         << 8 | ptr[1];
-  pmt     = (ptr[2] & 0x1f) << 8 | ptr[3];
+    prognum =  ptr[0]         << 8 | ptr[1];
+    pmt     = (ptr[2] & 0x1f) << 8 | ptr[3];
 
-  t->s_pmt_pid = pmt;
+    if(prognum != 0) {
+      t->s_pmt_pid = pmt;
+      return;
+    }
+    ptr += 4;
+    len -= 4;
+  }
 }