[FFmpeg-devel] [PATCH 5/6] avfilter: Free out on error
Michael Niedermayer
michael at niedermayer.cc
Sun Jul 7 21:47:28 EEST 2024
CID1197065 Resource leak
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavfilter/af_aderivative.c | 1 +
libavfilter/vf_deshake.c | 6 ++++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavfilter/af_aderivative.c b/libavfilter/af_aderivative.c
index eeaa23ff88d..4883972dcf1 100644
--- a/libavfilter/af_aderivative.c
+++ b/libavfilter/af_aderivative.c
@@ -126,6 +126,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
s->prev = ff_get_audio_buffer(inlink, 1);
if (!s->prev) {
av_frame_free(&in);
+ av_frame_free(&out);
return AVERROR(ENOMEM);
}
}
diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
index 107b78a7d1c..05a2df652ee 100644
--- a/libavfilter/vf_deshake.c
+++ b/libavfilter/vf_deshake.c
@@ -478,8 +478,10 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
aligned = !((intptr_t)in->data[0] & 15 | in->linesize[0] & 15);
deshake->sad = av_pixelutils_get_sad_fn(4, 4, aligned, deshake); // 16x16, 2nd source unaligned
- if (!deshake->sad)
- return AVERROR(EINVAL);
+ if (!deshake->sad) {
+ ret = AVERROR(EINVAL);
+ goto fail;
+ }
if (deshake->cx < 0 || deshake->cy < 0 || deshake->cw < 0 || deshake->ch < 0) {
// Find the most likely global motion for the current frame
--
2.45.2
More information about the ffmpeg-devel
mailing list