[FFmpeg-cvslog] lavfi/sinc: fix memory leak in error handling path

Jun Zhao git at videolan.org
Wed Sep 11 05:49:02 EEST 2019


ffmpeg | branch: master | Jun Zhao <barryjzhao at tencent.com> | Tue Sep 10 18:50:11 2019 +0800| [944d76a3e056c26bfa2b6459ec1888f0676a37f2] | committer: Jun Zhao

lavfi/sinc: fix memory leak in error handling path

free work&pi_wraps in error handling path to avoid memory leak.

Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Jun Zhao <barryjzhao at tencent.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=944d76a3e056c26bfa2b6459ec1888f0676a37f2
---

 libavfilter/asrc_sinc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavfilter/asrc_sinc.c b/libavfilter/asrc_sinc.c
index 0135eb9023..90f043d680 100644
--- a/libavfilter/asrc_sinc.c
+++ b/libavfilter/asrc_sinc.c
@@ -239,8 +239,11 @@ static int fir_to_phase(SincContext *s, float **h, int *len, int *post_len, floa
     s->rdft = s->irdft = NULL;
     s->rdft  = av_rdft_init(av_log2(work_len), DFT_R2C);
     s->irdft = av_rdft_init(av_log2(work_len), IDFT_C2R);
-    if (!s->rdft || !s->irdft)
+    if (!s->rdft || !s->irdft) {
+        av_free(pi_wraps);
+        av_free(work);
         return AVERROR(ENOMEM);
+    }
 
     av_rdft_calc(s->rdft, work);   /* Cepstral: */
     UNPACK(work, work_len);



More information about the ffmpeg-cvslog mailing list