1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2011-12-24 19:57:18 +01:00
parent 282bb02839
commit 43abef9fde

View File

@ -58,7 +58,7 @@ static int read_line(AVIOContext * pb, char* line, int bufsize)
break; break;
if (b == '\n') { if (b == '\n') {
line[i] = '\0'; line[i] = '\0';
return 0; return url_feof(pb) ? -1 : 0;
} }
line[i] = b; line[i] = b;
} }
@ -252,7 +252,7 @@ static int rpl_read_header(AVFormatContext *s, AVFormatParameters *ap)
// Read the index // Read the index
avio_seek(pb, chunk_catalog_offset, SEEK_SET); avio_seek(pb, chunk_catalog_offset, SEEK_SET);
total_audio_size = 0; 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; int64_t offset, video_size, audio_size;
error |= read_line(pb, line, sizeof(line)); error |= read_line(pb, line, sizeof(line));
if (3 != sscanf(line, "%"PRId64" , %"PRId64" ; %"PRId64, if (3 != sscanf(line, "%"PRId64" , %"PRId64" ; %"PRId64,