diff options
Diffstat (limited to 'gst-libs/ext/libav/libavformat/4xm.c')
-rw-r--r-- | gst-libs/ext/libav/libavformat/4xm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gst-libs/ext/libav/libavformat/4xm.c b/gst-libs/ext/libav/libavformat/4xm.c index c0b3914..9dfb956 100644 --- a/gst-libs/ext/libav/libavformat/4xm.c +++ b/gst-libs/ext/libav/libavformat/4xm.c @@ -136,6 +136,8 @@ static int parse_strk(AVFormatContext *s, av_log(s, AV_LOG_ERROR, "current_track too large\n"); return AVERROR_INVALIDDATA; } + if (track < 0) + return AVERROR_INVALIDDATA; if (track + 1 > fourxm->track_count) { AudioTrack *tmp = av_realloc(fourxm->tracks, (track + 1) * sizeof(AudioTrack)); @@ -154,7 +156,7 @@ static int parse_strk(AVFormatContext *s, if (fourxm->tracks[track].channels <= 0 || fourxm->tracks[track].sample_rate <= 0 || - fourxm->tracks[track].bits < 0) { + fourxm->tracks[track].bits <= 0) { av_log(s, AV_LOG_ERROR, "audio header invalid\n"); return AVERROR_INVALIDDATA; } |