From 3994eebb1e8765a96197811f33fd98a7add4380a Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 13 Jan 2014 22:17:12 +0100 Subject: [PATCH] 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 (cherry picked from commit 8c3b026a0eeb49464d957b61b0c01cceecc416fd) Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 3a736d18e0..bd02da6d41 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -461,9 +461,6 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) { void *buftmp; - if (probe_size < offset) { - continue; - } score = probe_size < max_probe_size ? AVPROBE_SCORE_RETRY : 0; /* read probe data */ @@ -483,6 +480,8 @@ int av_probe_input_buffer(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];