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.
This commit is contained in:
Pablo Montilla 2017-09-28 23:46:57 +02:00 committed by Carl Eugen Hoyos
parent 05dfa21d47
commit 1015982f45
2 changed files with 2 additions and 6 deletions

View File

@ -52,7 +52,7 @@ struct AVAESCTR;
*/
typedef struct MOVStts {
int count;
unsigned int count;
int duration;
} MOVStts;

View File

@ -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;