summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-02-03 19:37:18 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2017-02-03 21:52:22 +0100
commit15b2c37d5e1155a96630eb5f8758fd849d6b2a2e (patch)
tree39b44373422ac6fce858c44ef910649f402bbeb0 /libavfilter
parent3edbc2408b69eda763556de2a1bd129f180d5ed9 (diff)
avfilter/vf_deshake: Free out AVFrame on error
Fixes memleak Fixes part of CID1197065 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_deshake.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
index 4eae9885c6..64b48c6d02 100644
--- a/libavfilter/vf_deshake.c
+++ b/libavfilter/vf_deshake.c
@@ -450,7 +450,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
if (CONFIG_OPENCL && deshake->opencl) {
ret = ff_opencl_deshake_process_inout_buf(link->dst,in, out);
if (ret < 0)
- return ret;
+ goto fail;
}
if (deshake->cx < 0 || deshake->cy < 0 || deshake->cw < 0 || deshake->ch < 0) {
@@ -536,13 +536,16 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
av_frame_free(&deshake->ref);
if (ret < 0)
- return ret;
+ goto fail;
// Store the current frame as the reference frame for calculating the
// motion of the next frame
deshake->ref = in;
return ff_filter_frame(outlink, out);
+fail:
+ av_frame_free(&out);
+ return ret;
}
static const AVFilterPad deshake_inputs[] = {