Merge commit 'b8d7f3186e86234f6255f5e8ee9e98573b4d9a6e'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 18 Apr 2015 19:12:05 +0000 (21:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 18 Apr 2015 19:13:25 +0000 (21:13 +0200)
* commit 'b8d7f3186e86234f6255f5e8ee9e98573b4d9a6e':
  matroskadec: fix crash when parsing invalid mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/matroskadec.c

@@@ -2077,15 -1825,17 +2077,19 @@@ static int matroska_read_header(AVForma
      int i, j, res;
  
      matroska->ctx = s;
 +    matroska->cues_parsing_deferred = 1;
  
      /* First read the EBML header. */
-     if (ebml_parse(matroska, ebml_syntax, &ebml) ||
-         ebml.version         > EBML_VERSION      ||
+     if (ebml_parse(matroska, ebml_syntax, &ebml) || !ebml.doctype) {
+         av_log(matroska->ctx, AV_LOG_ERROR, "EBML header parsing failed\n");
+         ebml_free(ebml_syntax, &ebml);
+         return AVERROR_INVALIDDATA;
+     }
+     if (ebml.version         > EBML_VERSION      ||
          ebml.max_size        > sizeof(uint64_t)  ||
          ebml.id_length       > sizeof(uint32_t)  ||
 -        ebml.doctype_version > 3) {
 +        ebml.doctype_version > 3                 ||
 +        !ebml.doctype) {
          av_log(matroska->ctx, AV_LOG_ERROR,
                 "EBML header using unsupported features\n"
                 "(EBML version %"PRIu64", doctype %s, doc version %"PRIu64")\n",