Do not leak the initialized filter instance.
---
 libavfilter/vf_frei0r.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c
index 4f3f285..a3ad3b8 100644
--- a/libavfilter/vf_frei0r.c
+++ b/libavfilter/vf_frei0r.c
@@ -319,6 +319,8 @@ static int config_input_props(AVFilterLink *inlink)
     AVFilterContext *ctx = inlink->dst;
     Frei0rContext *s = ctx->priv;
 
+    if (s->destruct && s->instance)
+        s->destruct(s->instance);
     if (!(s->instance = s->construct(inlink->w, inlink->h))) {
         av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
         return AVERROR(EINVAL);
@@ -453,6 +455,8 @@ static int source_config_props(AVFilterLink *outlink)
     outlink->h = s->h;
     outlink->time_base = s->time_base;
 
+    if (s->destruct && s->instance)
+        s->destruct(s->instance);
     if (!(s->instance = s->construct(outlink->w, outlink->h))) {
         av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
         return AVERROR(EINVAL);
-- 
1.7.10.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to