[FFmpeg-cvslog] lavf/flacdec: Return maximum score if the streaminfo header is valid.
Carl Eugen Hoyos
git at videolan.org
Thu Mar 30 02:42:23 EEST 2017
ffmpeg | branch: release/3.2 | Carl Eugen Hoyos <cehoyos at ag.or.at> | Thu Mar 2 09:29:10 2017 +0100| [582c3d514a7b40d38fff610da2110ac63dfe2e10] | committer: Carl Eugen Hoyos
lavf/flacdec: Return maximum score if the streaminfo header is valid.
Fixes ticket #6208.
(cherry picked from commit 3733039610d76231e404ebf089f0ff2b9d8e5490)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=582c3d514a7b40d38fff610da2110ac63dfe2e10
---
libavformat/flacdec.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
index 66baba5..fee46fc 100644
--- a/libavformat/flacdec.c
+++ b/libavformat/flacdec.c
@@ -233,7 +233,14 @@ static int flac_probe(AVProbeData *p)
return raw_flac_probe(p);
if (p->buf_size < 4 || memcmp(p->buf, "fLaC", 4))
return 0;
- return AVPROBE_SCORE_EXTENSION;
+ if ( p->buf[4] & 0x7f != FLAC_METADATA_TYPE_STREAMINFO
+ || AV_RB24(p->buf + 5) != FLAC_STREAMINFO_SIZE
+ || AV_RB16(p->buf + 8) < 16
+ || AV_RB16(p->buf + 8) > AV_RB16(p->buf + 10)
+ || !(AV_RB24(p->buf + 18) >> 4)
+ || AV_RB24(p->buf + 18) >> 4 > 655350)
+ return AVPROBE_SCORE_EXTENSION;
+ return AVPROBE_SCORE_MAX;
}
static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_index,
More information about the ffmpeg-cvslog
mailing list