diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-13 22:17:12 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-14 00:32:01 +0100 |
commit | 0a055cc62e236b2475fee28cae761c3c33b4b8e5 (patch) | |
tree | 88cb520f191be0c91d032cd32aa005aeacf364a4 | |
parent | c8d43c22dbb1c56a3e1f8f89e599a2f2a90ca110 (diff) | |
download | ffmpeg-0a055cc62e236b2475fee28cae761c3c33b4b8e5.tar.gz |
avformat/utils/av_probe_input_buffer2: fix offset check
The check could fail if avio_read() read less than requested
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 8c3b026a0eeb49464d957b61b0c01cceecc416fd)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/utils.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 8854d5fc2e..ef688a56f3 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -370,9 +370,6 @@ int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt, for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt; probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) { - if (probe_size < offset) { - continue; - } score = probe_size < max_probe_size ? AVPROBE_SCORE_RETRY : 0; /* read probe data */ @@ -388,6 +385,8 @@ int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt, ret = 0; /* error was end of file, nothing read */ } buf_offset += ret; + if (buf_offset < offset) + continue; pd.buf_size = buf_offset - offset; pd.buf = &buf[offset]; |