|
@@ -478,7 +478,8 @@ int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt,
|
|
|
return AVERROR(EINVAL);
|
|
|
}
|
|
|
|
|
|
- for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt && ret >= 0; probe_size<<=1){
|
|
|
+ for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt && ret >= 0;
|
|
|
+ probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) {
|
|
|
int ret, score = probe_size < max_probe_size ? AVPROBE_SCORE_MAX/4 : 0;
|
|
|
int buf_offset = (probe_size == PROBE_BUF_MIN) ? 0 : probe_size>>1;
|
|
|
|
|
@@ -513,6 +514,11 @@ int ff_probe_input_buffer(ByteIOContext **pb, AVInputFormat **fmt,
|
|
|
}
|
|
|
|
|
|
av_free(buf);
|
|
|
+
|
|
|
+ if (!*fmt) {
|
|
|
+ return AVERROR_INVALIDDATA;
|
|
|
+ }
|
|
|
+
|
|
|
if (url_fseek(*pb, 0, SEEK_SET) < 0) {
|
|
|
url_fclose(*pb);
|
|
|
if (url_fopen(pb, filename, URL_RDONLY) < 0)
|