From cc42203b53967414e4d0badd99f5d443c587b73f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Sun, 9 Jan 2011 22:23:05 +0100 Subject: [PATCH] Make IPTV PAT parser skip over services with service_id set to 0 Ticket #318 --- src/iptv_input.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/iptv_input.c b/src/iptv_input.c index 70bdb6f4..8a4b2bd7 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; + } }