From 1015982f45d832ee926a81460121673a97292333 Mon Sep 17 00:00:00 2001 From: Pablo Montilla Date: Thu, 28 Sep 2017 23:46:57 +0200 Subject: [PATCH] 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. --- libavformat/isom.h | 2 +- libavformat/mov.c | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libavformat/isom.h b/libavformat/isom.h index 9aea629293..b9380e9dcc 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -52,7 +52,7 @@ struct AVAESCTR; */ typedef struct MOVStts { - int count; + unsigned int count; int duration; } MOVStts; diff --git a/libavformat/mov.c b/libavformat/mov.c index ede9cda9d3..899690d920 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;