From: Andreas Ă–man Date: Sun, 9 Jan 2011 21:23:05 +0000 (+0100) Subject: Make IPTV PAT parser skip over services with service_id set to 0 X-Git-Tag: 2.99~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc42203b53967414e4d0badd99f5d443c587b73f;p=thirdparty%2Ftvheadend.git Make IPTV PAT parser skip over services with service_id set to 0 Ticket #318 --- diff --git a/src/iptv_input.c b/src/iptv_input.c index 70bdb6f47..8a4b2bd7e 100644 --- a/src/iptv_input.c +++ b/src/iptv_input.c @@ -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; + } }