From defb960a47f6d8f801168e1c61399f6abfb79ef3 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sat, 21 May 2016 19:22:00 +0200 Subject: avfilter/af_loudnorm: fix crash when ebur128 initialization was not successfull/complete Signed-off-by: Paul B Mahol --- libavfilter/af_loudnorm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'libavfilter/af_loudnorm.c') diff --git a/libavfilter/af_loudnorm.c b/libavfilter/af_loudnorm.c index cb210d41fe..9d27c16b98 100644 --- a/libavfilter/af_loudnorm.c +++ b/libavfilter/af_loudnorm.c @@ -789,6 +789,9 @@ static av_cold void uninit(AVFilterContext *ctx) double i_in, i_out, lra_in, lra_out, thresh_in, thresh_out, tp_in, tp_out; int c; + if (!s->r128_in || !s->r128_out) + goto end; + ebur128_loudness_range(s->r128_in, &lra_in); ebur128_loudness_global(s->r128_in, &i_in); ebur128_relative_threshold(s->r128_in, &thresh_in); @@ -869,8 +872,11 @@ static av_cold void uninit(AVFilterContext *ctx) break; } - ebur128_destroy(&s->r128_in); - ebur128_destroy(&s->r128_out); +end: + if (s->r128_in) + ebur128_destroy(&s->r128_in); + if (s->r128_out) + ebur128_destroy(&s->r128_out); av_freep(&s->limiter_buf); av_freep(&s->prev_smp); av_freep(&s->buf); -- cgit v1.2.3