diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c index 454346532c..1f34197a28 100644 --- a/libavcodec/vp9.c +++ b/libavcodec/vp9.c @@ -1607,10 +1607,12 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, s->frame_header = &rf->header; if ((ret = decode_frame_header(avctx, data, size, &ref)) < 0) { + ff_cbs_fragment_reset(&s->current_frag); return ret; } else if (ret == 0) { if (!s->s.refs[ref].f) { av_log(avctx, AV_LOG_ERROR, "Requested reference %d not available\n", ref); + ff_cbs_fragment_reset(&s->current_frag); return AVERROR_INVALIDDATA; } for (int i = 0; i < 8; i++)