]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
dvbpsi: add sanity checks to psi_desc_ca()
authorJaroslav Kysela <perex@perex.cz>
Thu, 7 Dec 2017 14:28:33 +0000 (15:28 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 7 Dec 2017 14:28:33 +0000 (15:28 +0100)
src/input/mpegts/dvb_psi.c

index a1cc346bc5fdb43ccc9aeb9a329bc348f44f40d3..152aef1d70d6e45dec2b9c88507c97ed904ea4d7 100644 (file)
@@ -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