diff --git a/libavfilter/vf_lenscorrection.c b/libavfilter/vf_lenscorrection.c
index d30a81b0331904557b744a73d45a0c6185a612a8..58184b0e17e26c515f926f542b87961f48331516 100644
--- a/libavfilter/vf_lenscorrection.c
+++ b/libavfilter/vf_lenscorrection.c
@@ -111,6 +111,16 @@ static int query_formats(AVFilterContext *ctx)
     return 0;
 }
 
+static av_cold void uninit(AVFilterContext *ctx)
+{
+    LenscorrectionCtx *rect = ctx->priv;
+    int i;
+
+    for (i = 0; i < FF_ARRAY_ELEMS(rect->correction); i++) {
+        av_freep(&rect->correction[i]);
+    }
+}
+
 static int config_props(AVFilterLink *outlink)
 {
     AVFilterContext *ctx = outlink->src;
@@ -214,5 +224,6 @@ AVFilter ff_vf_lenscorrection = {
     .inputs        = lenscorrection_inputs,
     .outputs       = lenscorrection_outputs,
     .priv_class    = &lenscorrection_class,
+    .uninit        = uninit,
     .flags         = AVFILTER_FLAG_SLICE_THREADS,
 };