libavformat/oggparsevorbis.c:332: error: Buffer Overrun L2
  Offset: [0, 9223372036854775808] Size: 64 by call to `avpriv_vorbis_parse_frame`.

libavformat/oggparsevorbis.c:326:9: Assignment
324.             s->streams[idx]->duration -= s->streams[idx]->start_time;
325.         s->streams[idx]->cur_dts    = AV_NOPTS_VALUE;
326.         priv->final_pts             = AV_NOPTS_VALUE;
             ^
327.         avpriv_vorbis_parse_reset(&priv->vp);
328.     }

libavformat/oggparsevorbis.c:327:9: Call
325.         s->streams[idx]->cur_dts    = AV_NOPTS_VALUE;
326.         priv->final_pts             = AV_NOPTS_VALUE;
327.         avpriv_vorbis_parse_reset(&priv->vp);
             ^
328.     }
329. 

libavcodec/vorbis_parser.c:236:1: Parameter `s->valid_extradata`
  234. }
  235. 
  236. void avpriv_vorbis_parse_reset(VorbisParseContext *s)
       ^
  237. {
  238.     if (s->valid_extradata)

libavformat/oggparsevorbis.c:332:20: Call
330.     /* parse packet duration */
331.     if (os->psize > 0) {
332.         duration = avpriv_vorbis_parse_frame(&priv->vp, os->buf + os->pstart, 1);
                        ^
333.         if (duration <= 0) {
334.             os->pflags |= AV_PKT_FLAG_CORRUPT;

libavcodec/vorbis_parser.c:203:1: <Offset trace>
201. }
202. 
203. int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
     ^
204.                               int buf_size)
205. {

libavcodec/vorbis_parser.c:203:1: Parameter `s->mode_count`
  201. }
  202. 
  203. int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
       ^
  204.                               int buf_size)
  205. {

libavcodec/vorbis_parser.c:203:1: <Length trace>
201. }
202. 
203. int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
     ^
204.                               int buf_size)
205. {

libavcodec/vorbis_parser.c:203:1: Parameter `s->mode_blocksize[*]`
  201. }
  202. 
  203. int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
       ^
  204.                               int buf_size)
  205. {

libavcodec/vorbis_parser.c:228:33: Array access: Offset: [0, 9223372036854775808] Size: 64 by call to `avpriv_vorbis_parse_frame` 
  226.             previous_blocksize = s->blocksize[flag];
  227.         }
  228.         current_blocksize     = s->mode_blocksize[mode];
                                       ^
  229.         duration              = (previous_blocksize + current_blocksize) >> 2;
  230.         s->previous_blocksize = current_blocksize;

int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
                              int buf_size)
{
    int duration = 0;
    if (s->valid_extradata && buf_size > 0) {
        int mode, current_blocksize;
        int previous_blocksize = s->previous_blocksize;
        if (buf[0] & 1) {
            av_log(s->avctx, AV_LOG_ERROR, "Invalid packet\n");
            return AVERROR_INVALIDDATA;
        }
        if (s->mode_count == 1)
            mode = 0;
        else
            mode = (buf[0] & s->mode_mask) >> 1;
        if (mode >= s->mode_count) {
            av_log(s->avctx, AV_LOG_ERROR, "Invalid mode in packet\n");
            return AVERROR_INVALIDDATA;
        }
        if (mode) {
            int flag = !!(buf[0] & s->prev_mask);
            previous_blocksize = s->blocksize[flag];
        }
        current_blocksize     = s->mode_blocksize[mode];
        duration              = (previous_blocksize + current_blocksize) >> 2;
        s->previous_blocksize = current_blocksize;
    }
    return duration;
}
['static int vorbis_packet(AVFormatContext *s, int idx)\n{\n    struct ogg *ogg = s->priv_data;\n    struct ogg_stream *os = ogg->streams + idx;\n    struct oggvorbis_private *priv = os->private;\n    int duration;\n    if (!os->lastpts) {\n        int seg;\n        uint8_t *last_pkt = os->buf + os->pstart;\n        uint8_t *next_pkt = last_pkt;\n        int first_duration = 0;\n        avpriv_vorbis_parse_reset(&priv->vp);\n        duration = 0;\n        for (seg = 0; seg < os->nsegs; seg++) {\n            if (os->segments[seg] < 255) {\n                int d = avpriv_vorbis_parse_frame(&priv->vp, last_pkt, 1);\n                if (d < 0) {\n                    duration = os->granule;\n                    break;\n                }\n                if (!duration)\n                    first_duration = d;\n                duration += d;\n                last_pkt = next_pkt + os->segments[seg];\n            }\n            next_pkt += os->segments[seg];\n        }\n        os->lastpts = os->lastdts   = os->granule - duration;\n        s->streams[idx]->start_time = os->lastpts + first_duration;\n        if (s->streams[idx]->duration)\n            s->streams[idx]->duration -= s->streams[idx]->start_time;\n        s->streams[idx]->cur_dts    = AV_NOPTS_VALUE;\n        priv->final_pts             = AV_NOPTS_VALUE;\n        avpriv_vorbis_parse_reset(&priv->vp);\n    }\n    if (os->psize > 0) {\n        duration = avpriv_vorbis_parse_frame(&priv->vp, os->buf + os->pstart, 1);\n        if (duration <= 0) {\n            os->pflags |= AV_PKT_FLAG_CORRUPT;\n            return 0;\n        }\n        os->pduration = duration;\n    }\n    if (os->flags & OGG_FLAG_EOS) {\n        if (os->lastpts != AV_NOPTS_VALUE) {\n            priv->final_pts = os->lastpts;\n            priv->final_duration = 0;\n        }\n        if (os->segp == os->nsegs)\n            os->pduration = os->granule - priv->final_pts - priv->final_duration;\n        priv->final_duration += os->pduration;\n    }\n    return 0;\n}', 'void avpriv_vorbis_parse_reset(VorbisParseContext *s)\n{\n    if (s->valid_extradata)\n        s->previous_blocksize = s->mode_blocksize[0];\n}', 'int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,\n                              int buf_size)\n{\n    int duration = 0;\n    if (s->valid_extradata && buf_size > 0) {\n        int mode, current_blocksize;\n        int previous_blocksize = s->previous_blocksize;\n        if (buf[0] & 1) {\n            av_log(s->avctx, AV_LOG_ERROR, "Invalid packet\\n");\n            return AVERROR_INVALIDDATA;\n        }\n        if (s->mode_count == 1)\n            mode = 0;\n        else\n            mode = (buf[0] & s->mode_mask) >> 1;\n        if (mode >= s->mode_count) {\n            av_log(s->avctx, AV_LOG_ERROR, "Invalid mode in packet\\n");\n            return AVERROR_INVALIDDATA;\n        }\n        if (mode) {\n            int flag = !!(buf[0] & s->prev_mask);\n            previous_blocksize = s->blocksize[flag];\n        }\n        current_blocksize     = s->mode_blocksize[mode];\n        duration              = (previous_blocksize + current_blocksize) >> 2;\n        s->previous_blocksize = current_blocksize;\n    }\n    return duration;\n}']