[FFmpeg-cvslog] rpl: Fix near infinite loop in index reading due to missing eof check.

Michael Niedermayer git at videolan.org
Sun Dec 25 00:23:38 CET 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Dec 24 19:57:18 2011 +0100| [43abef9fde0cf87153cc9031cad61f75b02cfa01] | committer: Michael Niedermayer

rpl: Fix near infinite loop in index reading due to missing eof check.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=43abef9fde0cf87153cc9031cad61f75b02cfa01
---

 libavformat/rpl.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/rpl.c b/libavformat/rpl.c
index 9816cb7..7100331 100644
--- a/libavformat/rpl.c
+++ b/libavformat/rpl.c
@@ -58,7 +58,7 @@ static int read_line(AVIOContext * pb, char* line, int bufsize)
             break;
         if (b == '\n') {
             line[i] = '\0';
-            return 0;
+            return url_feof(pb) ? -1 : 0;
         }
         line[i] = b;
     }
@@ -252,7 +252,7 @@ static int rpl_read_header(AVFormatContext *s, AVFormatParameters *ap)
     // Read the index
     avio_seek(pb, chunk_catalog_offset, SEEK_SET);
     total_audio_size = 0;
-    for (i = 0; i < number_of_chunks; i++) {
+    for (i = 0; !error && i < number_of_chunks; i++) {
         int64_t offset, video_size, audio_size;
         error |= read_line(pb, line, sizeof(line));
         if (3 != sscanf(line, "%"PRId64" , %"PRId64" ; %"PRId64,



More information about the ffmpeg-cvslog mailing list