diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 0f1808773b..500048f761 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1580,7 +1580,7 @@ static int matroska_read_header(AVFormatContext *s) && (track->codec_priv.data != NULL)) { fourcc = AV_RL32(track->codec_priv.data); codec_id = ff_codec_get_id(ff_codec_movvideo_tags, fourcc); - } else if (codec_id == CODEC_ID_ALAC && track->codec_priv.size) { + } else if (codec_id == CODEC_ID_ALAC && track->codec_priv.size && track->codec_priv.size < INT_MAX-12) { /* Only ALAC's magic cookie is stored in Matroska's track headers. Create the "atom size", "tag", and "tag version" fields the decoder expects manually. */