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:
parent
282bb02839
commit
43abef9fde
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user