summaryrefslogtreecommitdiff
path: root/libavcodec/rv34.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-09-16 16:05:18 +0300
committerMartin Storsjö <martin@martin.st>2013-09-19 11:09:18 +0300
commitfdbd924b84e85ac5c80f01ee059ed5c81d3cc205 (patch)
tree149de42c0db885e2e167a7a20bb10efc0309b3aa /libavcodec/rv34.c
parentbcbe4f3ceb6ee0210d3a401963518906c8b9b230 (diff)
rv34: Fix a memory leak on errors
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/rv34.c')
-rw-r--r--libavcodec/rv34.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index af378551a1..7eb97e7083 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -1495,8 +1495,10 @@ av_cold int ff_rv34_decode_init(AVCodecContext *avctx)
ff_rv40dsp_init(&r->rdsp);
#endif
- if ((ret = rv34_decoder_alloc(r)) < 0)
+ if ((ret = rv34_decoder_alloc(r)) < 0) {
+ ff_MPV_common_end(&r->s);
return ret;
+ }
if(!intra_vlcs[0].cbppattern[0].bits)
rv34_init_tables();
@@ -1517,8 +1519,10 @@ int ff_rv34_decode_init_thread_copy(AVCodecContext *avctx)
r->tmp_b_block_base = NULL;
if ((err = ff_MPV_common_init(&r->s)) < 0)
return err;
- if ((err = rv34_decoder_alloc(r)) < 0)
+ if ((err = rv34_decoder_alloc(r)) < 0) {
+ ff_MPV_common_end(&r->s);
return err;
+ }
}
return 0;