From 8ebe099ac0c0ca68161c54efc76ea6a7a87f81ce Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 21 Feb 2009 20:44:39 +0000 Subject: Check for EOF during index reading. Originally committed as revision 17496 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avidec.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'libavformat/avidec.c') diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 3526700ba7..4a28890407 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -165,6 +165,9 @@ static int read_braindead_odml_indx(AVFormatContext *s, int frame_num){ #ifdef DEBUG_SEEK av_log(s, AV_LOG_ERROR, "pos:%"PRId64", len:%X\n", pos, len); #endif + if(url_feof(pb)) + return -1; + if(last_pos == pos || pos == base - 8) avi->non_interleaved= 1; if(last_pos != pos) @@ -181,6 +184,10 @@ static int read_braindead_odml_indx(AVFormatContext *s, int frame_num){ offset = get_le64(pb); get_le32(pb); /* size */ duration = get_le32(pb); + + if(url_feof(pb)) + return -1; + pos = url_ftell(pb); url_fseek(pb, offset+8, SEEK_SET); @@ -923,6 +930,9 @@ static int avi_read_idx1(AVFormatContext *s, int size) #if defined(DEBUG_SEEK) av_log(s, AV_LOG_DEBUG, "%d cum_len=%"PRId64"\n", len, ast->cum_len); #endif + if(url_feof(pb)) + return -1; + if(last_pos == pos) avi->non_interleaved= 1; else -- cgit v1.2.3