diff --git a/libavformat/4xm.c b/libavformat/4xm.c index f003c9c25a..7a87c3695a 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -131,6 +131,8 @@ static int parse_strk(AVFormatContext *s, return AVERROR_INVALIDDATA; track = AV_RL32(buf + 8); + if (track < 0) + return AVERROR_INVALIDDATA; if (track + 1 > fourxm->track_count) { if (av_reallocp_array(&fourxm->tracks, track + 1, sizeof(AudioTrack))) return AVERROR(ENOMEM);