From 7a02b364b68c0bf7f065f5c217fae458f0efdb8d Mon Sep 17 00:00:00 2001 From: James Almer Date: Tue, 31 Oct 2017 20:29:53 -0300 Subject: [PATCH] avcodec/vp9_superframe_bsf: cache packets by creating new references rather than moving them Should hopefully fix the invalid reads after free introduced in e1bc3f4396ade6033787717d3650fb62663eae8 for all targets. Signed-off-by: James Almer --- libavcodec/vp9_superframe_bsf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/vp9_superframe_bsf.c b/libavcodec/vp9_superframe_bsf.c index dea2cc232f..ceead5559c 100644 --- a/libavcodec/vp9_superframe_bsf.c +++ b/libavcodec/vp9_superframe_bsf.c @@ -147,7 +147,9 @@ static int vp9_superframe_filter(AVBSFContext *ctx, AVPacket *out) goto done; } - av_packet_move_ref(s->cache[s->n_cache++], in); + res = av_packet_ref(s->cache[s->n_cache++], in); + if (res < 0) + goto done; if (invisible) { res = AVERROR(EAGAIN);