]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
parsers: AAC fix endless loop when ADTS data are invalid, fixes #3381
authorJaroslav Kysela <perex@perex.cz>
Tue, 29 Dec 2015 10:48:44 +0000 (11:48 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 29 Dec 2015 10:48:44 +0000 (11:48 +0100)
src/parsers/parsers.c

index 7db1cdd875e5ef05493010c3a0cf3cdaff2705f5..621fb05f812ad9f54ecd5a2d81c031b8c514dd02 100644 (file)
@@ -317,6 +317,12 @@ parse_aac(service_t *t, elementary_stream_t *st, const uint8_t *data,
       if (l < muxlen)
         break;
 
+      if (muxlen < 7) {
+        tvhtrace("parser", "AAC/ATDS skip byte %02x", d[0]);
+        p++;
+        continue;
+      }
+
       latm = 0;
       sbuf_reset(&st->es_buf_a, 4000);
       sbuf_append(&st->es_buf_a, d, muxlen);