Browse Source

matroskadec: check element size against stream limit in ebml_parse_elem()

Fixes Ticket1195

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.0
Michael Niedermayer 13 years ago
parent
commit
668c873bed
1 changed files with 4 additions and 1 deletions
  1. +4
    -1
      libavformat/matroskadec.c

+ 4
- 1
libavformat/matroskadec.c View File

@@ -945,7 +945,10 @@ static int ebml_parse_elem(MatroskaDemuxContext *matroska,
return ebml_parse_nest(matroska, syntax->def.n, data);
case EBML_PASS: return ebml_parse_id(matroska, syntax->def.n, id, data);
case EBML_STOP: return 1;
default: return avio_skip(pb,length)<0 ? AVERROR(EIO) : 0;
default:
if(ffio_limit(pb, length) != length)
return AVERROR(EIO);
return avio_skip(pb,length)<0 ? AVERROR(EIO) : 0;
}
if (res == AVERROR_INVALIDDATA)
av_log(matroska->ctx, AV_LOG_ERROR, "Invalid element\n");


Loading…
Cancel
Save