From: Jaroslav Kysela Date: Thu, 7 Dec 2017 14:28:33 +0000 (+0100) Subject: dvbpsi: add sanity checks to psi_desc_ca() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cc6f6124352d420a098d628df1c48877a7544ea;p=thirdparty%2Ftvheadend.git dvbpsi: add sanity checks to psi_desc_ca() --- diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index a1cc346bc..152aef1d7 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -2230,11 +2230,18 @@ psi_desc_ca(mpegts_table_t *mt, mpegts_service_t *t, const uint8_t *buffer, int int r = 0; int i; uint32_t provid = 0; - uint16_t caid = extract_2byte(buffer); - uint16_t pid = extract_pid(buffer + 2); + uint16_t caid, pid; + + if (size < 4) + return 0; + + caid = extract_2byte(buffer); + pid = extract_pid(buffer + 2); switch (caid & 0xFF00) { case 0x0100: // SECA/Mediaguard + if (size < 6) + return 0; provid = extract_2byte(buffer + 4); //Add extra providers, if any