diff --git a/libavformat/vividas.c b/libavformat/vividas.c index f5629f7eb4..d38bb8d84b 100644 --- a/libavformat/vividas.c +++ b/libavformat/vividas.c @@ -671,6 +671,10 @@ static int viv_read_packet(AVFormatContext *s, if (!pb) return AVERROR(EIO); off = avio_tell(pb); + + if (viv->current_sb_entry >= viv->n_sb_entries) + return AVERROR_INVALIDDATA; + off += viv->sb_entries[viv->current_sb_entry].size; if (viv->sb_entries[viv->current_sb_entry].flag == 0) {