From 695a766bff4cd8414a84e58159506d72b4e44892 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 18 Feb 2013 19:48:44 +0100 Subject: [PATCH] ff_read_timestamp: check stream_index before using it as array index Fixes out of array read Found-by: durandal_1707 Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 009aeb031a..d59a02d951 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1767,7 +1767,10 @@ int av_index_search_timestamp(AVStream *st, int64_t wanted_timestamp, static int64_t ff_read_timestamp(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit, int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t )) { - return wrap_timestamp(s->streams[stream_index], read_timestamp(s, stream_index, ppos, pos_limit)); + int64_t ts = read_timestamp(s, stream_index, ppos, pos_limit); + if (stream_index >= 0) + ts = wrap_timestamp(s->streams[stream_index], ts); + return ts; } int ff_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts, int flags)