提交 8ae5eb75 编写于 作者: D David Goldwich 提交者: Anton Khirnov

oma: better format detection with small probe buffer

Signed-off-by: NDavid Goldwich <david.goldwich@gmail.com>
Signed-off-by: NAnton Khirnov <anton@khirnov.net>
上级 e9607007
......@@ -394,14 +394,20 @@ static int oma_read_probe(AVProbeData *p)
unsigned tag_len = 0;
buf = p->buf;
/* version must be 3 and flags byte zero */
if (ff_id3v2_match(buf, ID3v2_EA3_MAGIC) && buf[3] == 3 && !buf[4])
tag_len = ff_id3v2_tag_len(buf);
// This check cannot overflow as tag_len has at most 28 bits
if (p->buf_size < tag_len + 5)
if (p->buf_size < ID3v2_HEADER_SIZE ||
!ff_id3v2_match(buf, ID3v2_EA3_MAGIC) ||
buf[3] != 3 || // version must be 3
buf[4]) // flags byte zero
return 0;
tag_len = ff_id3v2_tag_len(buf);
/* This check cannot overflow as tag_len has at most 28 bits */
if (p->buf_size < tag_len + 5)
/* EA3 header comes late, might be outside of the probe buffer */
return AVPROBE_SCORE_MAX / 2;
buf += tag_len;
if (!memcmp(buf, "EA3", 3) && !buf[4] && buf[5] == EA3_HEADER_SIZE)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册