From c6483f1c2ac46d13ba1f2b547291b492a546f75a Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 23 Nov 2023 16:31:53 +0100 Subject: [PATCH] lavfi/buffersink: avoid leaking peeked_frame on uninit --- libavfilter/buffersink.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index ca2af1bc07..3da3331159 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -164,6 +164,13 @@ static av_cold int common_init(AVFilterContext *ctx) return 0; } +static void uninit(AVFilterContext *ctx) +{ + BufferSinkContext *buf = ctx->priv; + + av_frame_free(&buf->peeked_frame); +} + static int activate(AVFilterContext *ctx) { BufferSinkContext *buf = ctx->priv; @@ -385,6 +392,7 @@ const AVFilter ff_vsink_buffer = { .priv_size = sizeof(BufferSinkContext), .priv_class = &buffersink_class, .init = common_init, + .uninit = uninit, .activate = activate, FILTER_INPUTS(ff_video_default_filterpad), .outputs = NULL, @@ -397,6 +405,7 @@ const AVFilter ff_asink_abuffer = { .priv_class = &abuffersink_class, .priv_size = sizeof(BufferSinkContext), .init = common_init, + .uninit = uninit, .activate = activate, FILTER_INPUTS(ff_audio_default_filterpad), .outputs = NULL,