Commit 4aba45ca authored by Jacob Trimble's avatar Jacob Trimble Committed by Michael Niedermayer

avformat/mov: Add check for per-sample IV size.

Found by Chrome's ClusterFuzz: http://crbug.com/849062.
Signed-off-by: 's avatarJacob Trimble <modmaker@google.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 9461e7d3
......@@ -6273,8 +6273,13 @@ static int mov_read_tenc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return AVERROR(ENOMEM);
}
sc->cenc.per_sample_iv_size = avio_r8(pb);
if (sc->cenc.per_sample_iv_size != 0 && sc->cenc.per_sample_iv_size != 8 &&
sc->cenc.per_sample_iv_size != 16) {
av_log(c->fc, AV_LOG_ERROR, "invalid per-sample IV size value\n");
return AVERROR_INVALIDDATA;
}
if (avio_read(pb, sc->cenc.default_encrypted_sample->key_id, 16) != 16) {
av_log(c->fc, AV_LOG_ERROR, "failed to read the default key ID");
av_log(c->fc, AV_LOG_ERROR, "failed to read the default key ID\n");
return AVERROR_INVALIDDATA;
}
......@@ -6286,7 +6291,7 @@ static int mov_read_tenc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
}
if (avio_read(pb, sc->cenc.default_encrypted_sample->iv, iv_size) != iv_size) {
av_log(c->fc, AV_LOG_ERROR, "failed to read the default IV");
av_log(c->fc, AV_LOG_ERROR, "failed to read the default IV\n");
return AVERROR_INVALIDDATA;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment