In order to avoid potential integer overflow change the comparison
andmake sure to use the same unsigned type for both elements.
---
Thanks to Clement for pointing this issue out.
Vittorio
libavformat/isom.h | 2 +-
libavformat/mov.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavformat/isom.h b/libavformat/isom.h
index 85b8761..8cc5ab7 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -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
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 9afd020..e42e04f 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -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);
--
2.10.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel