From: Jaroslav Kysela Date: Thu, 7 Dec 2017 14:28:33 +0000 (+0100) Subject: dvbpsi: add sanity checks to psi_desc_ca() X-Git-Tag: v4.2.5~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03b26e39a49bfbc968d64399ef13eea2b1d4929f;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 9d822151e..002dca85f 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -2205,11 +2205,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