mov: Rework stsc index validation

In order to avoid potential integer overflow change the comparison
and make sure to use the same unsigned type for both elements.
This commit is contained in:
Vittorio Giovara 2017-02-03 13:05:27 +01:00
parent ce6d72d107
commit 53ea595eec
2 changed files with 5 additions and 5 deletions

View File

@ -111,7 +111,7 @@ typedef struct MOVStreamContext {
MOVStts *ctts_data;
unsigned int stsc_count;
MOVStsc *stsc_data;
int stsc_index;
unsigned int stsc_index;
int stsc_sample;
unsigned int stps_count;
unsigned *stps_data; ///< partial sync sample for mpeg-2 open gop

View File

@ -1983,13 +1983,13 @@ static int mov_read_stsc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}
static inline int mov_stsc_index_valid(int index, int count)
static inline int mov_stsc_index_valid(unsigned int index, unsigned int count)
{
return index + 1 < count;
return index < count - 1;
}
/* Compute the samples value for the stsc entry at the given index. */
static inline int mov_get_stsc_samples(MOVStreamContext *sc, int index)
static inline int mov_get_stsc_samples(MOVStreamContext *sc, unsigned int index)
{
int chunk_count;
@ -3982,7 +3982,7 @@ static int mov_seek_stream(AVFormatContext *s, AVStream *st, int64_t timestamp,
{
MOVStreamContext *sc = st->priv_data;
int sample, time_sample;
int i;
unsigned int i;
sample = av_index_search_timestamp(st, timestamp, flags);
av_log(s, AV_LOG_TRACE, "stream %d, timestamp %"PRId64", sample %d\n", st->index, timestamp, sample);