diff options
author | Pablo Montilla <melkor@odyssey.com.uy> | 2017-09-28 23:46:57 +0200 |
---|---|---|
committer | Carl Eugen Hoyos <ceffmpeg@gmail.com> | 2017-09-28 23:46:57 +0200 |
commit | 1015982f45d832ee926a81460121673a97292333 (patch) | |
tree | 1c993bd1705d09a81a51a33e5d71c2240e7f9e74 /libavformat/mov.c | |
parent | 05dfa21d47f35f394938653abcab8b3baa3bc999 (diff) | |
download | ffmpeg-streaming-1015982f45d832ee926a81460121673a97292333.zip ffmpeg-streaming-1015982f45d832ee926a81460121673a97292333.tar.gz |
lavf/mov: Allow reading very large files.
The Sample count in the time-to-sample table is defined as
32-bit unsigned integer by the QT specification.
Fixes ticket #6700.
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r-- | libavformat/mov.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index ede9cda..899690d 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2663,15 +2663,11 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom) for (i = 0; i < entries && !pb->eof_reached; i++) { int sample_duration; - int sample_count; + unsigned int sample_count; sample_count=avio_rb32(pb); sample_duration = avio_rb32(pb); - if (sample_count < 0) { - av_log(c->fc, AV_LOG_ERROR, "Invalid sample_count=%d\n", sample_count); - return AVERROR_INVALIDDATA; - } sc->stts_data[i].count= sample_count; sc->stts_data[i].duration= sample_duration; |