[FFmpeg-cvslog] vc1dec: Properly call deinit function on error
Vittorio Giovara
git at videolan.org
Mon Apr 11 16:01:59 CEST 2016
ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Wed Feb 24 14:40:17 2016 -0500| [f91d94bdfc3f5f83ff0be4d19d10d0a35697386f] | committer: Vittorio Giovara
vc1dec: Properly call deinit function on error
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f91d94bdfc3f5f83ff0be4d19d10d0a35697386f
---
libavcodec/vc1dec.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 2cd7a03..2ccbbd5 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -362,20 +362,14 @@ av_cold int ff_vc1_decode_init_alloc_tables(VC1Context *v)
if (!v->mv_type_mb_plane || !v->direct_mb_plane || !v->acpred_plane || !v->over_flags_plane ||
!v->block || !v->cbp_base || !v->ttblk_base || !v->is_intra_base || !v->luma_mv_base ||
!v->mb_type_base) {
- av_freep(&v->mv_type_mb_plane);
- av_freep(&v->direct_mb_plane);
- av_freep(&v->acpred_plane);
- av_freep(&v->over_flags_plane);
- av_freep(&v->block);
- av_freep(&v->cbp_base);
- av_freep(&v->ttblk_base);
- av_freep(&v->is_intra_base);
- av_freep(&v->luma_mv_base);
- av_freep(&v->mb_type_base);
- return AVERROR(ENOMEM);
+ goto error;
}
return 0;
+
+error:
+ ff_vc1_decode_end(s->avctx);
+ return AVERROR(ENOMEM);
}
av_cold void ff_vc1_init_transposed_scantables(VC1Context *v)
More information about the ffmpeg-cvslog
mailing list