Merge commit 'c231987662194d009dd91bfc57c678e0e70ca161'

* commit 'c231987662194d009dd91bfc57c678e0e70ca161':
  mov: Make sure the read sample count is nonnegative

Conflicts:
	libavformat/mov.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-09-30 00:32:01 +02:00
commit 143a19f5c7

View File

@ -1922,11 +1922,16 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
sample_count=avio_rb32(pb); sample_count=avio_rb32(pb);
sample_duration = avio_rb32(pb); sample_duration = avio_rb32(pb);
/* sample_duration < 0 is invalid based on the spec */ /* sample_duration < 0 is invalid based on the spec */
if (sample_duration < 0) { if (sample_duration < 0) {
av_log(c->fc, AV_LOG_ERROR, "Invalid SampleDelta in STTS %d\n", sample_duration); av_log(c->fc, AV_LOG_ERROR, "Invalid SampleDelta in STTS %d\n", sample_duration);
sample_duration = 1; sample_duration = 1;
} }
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].count= sample_count;
sc->stts_data[i].duration= sample_duration; sc->stts_data[i].duration= sample_duration;