Browse Source

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 <jamrial@gmail.com>
James Almer 7 years ago
parent
commit
7a02b364b6
1 changed files with 3 additions and 1 deletions
  1. 3 1
      libavcodec/vp9_superframe_bsf.c

+ 3 - 1
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);