[FFmpeg-cvslog] vc1dec: Fix leak on error for array allocations

Vittorio Giovara git at videolan.org
Mon Apr 11 16:03:39 CEST 2016


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Wed Feb 24 14:40:18 2016 -0500| [01f0e6a0c9270f1d5bef08459a6f167cf55e0596] | committer: Vittorio Giovara

vc1dec: Fix leak on error for array allocations

The deinit function in the 'error' section will correctly free
everything.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=01f0e6a0c9270f1d5bef08459a6f167cf55e0596
---

 libavcodec/vc1dec.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 2ccbbd5..9d0f890 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -355,8 +355,11 @@ av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v)
     ff_intrax8_common_init(&v->x8,s);
 
     if (s->avctx->codec_id == AV_CODEC_ID_WMV3IMAGE || s->avctx->codec_id == AV_CODEC_ID_VC1IMAGE) {
-        for (i = 0; i < 4; i++)
-            if (!(v->sr_rows[i >> 1][i & 1] = av_malloc(v->output_width))) return -1;
+        for (i = 0; i < 4; i++) {
+            v->sr_rows[i >> 1][i & 1] = av_malloc(v->output_width);
+            if (!v->sr_rows[i >> 1][i & 1])
+                goto error;
+        }
     }
 
     if (!v->mv_type_mb_plane || !v->direct_mb_plane || !v->acpred_plane || !v->over_flags_plane ||



More information about the ffmpeg-cvslog mailing list