diff --git a/libavformat/4xm.c b/libavformat/4xm.c index 7afdf252c5..2e73d9dd9e 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -148,6 +148,9 @@ static int parse_strk(AVFormatContext *s, memset(&fourxm->tracks[fourxm->track_count], 0, sizeof(AudioTrack) * (track + 1 - fourxm->track_count)); fourxm->track_count = track + 1; + } else { + if (fourxm->tracks[track].bits) + return AVERROR_INVALIDDATA; } fourxm->tracks[track].adpcm = AV_RL32(buf + 12); fourxm->tracks[track].channels = AV_RL32(buf + 36);