avfilter/af_dynaudnorm: fix possible null pointer dereference
authorPaul B Mahol <onemda@gmail.com>
Thu, 14 Jan 2016 13:27:01 +0000 (14:27 +0100)
committerPaul B Mahol <onemda@gmail.com>
Thu, 14 Jan 2016 13:30:36 +0000 (14:30 +0100)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavfilter/af_dynaudnorm.c

index 1a5fc48..d0bb51d 100644 (file)
@@ -173,7 +173,8 @@ static cqueue *cqueue_create(int size)
 
 static void cqueue_free(cqueue *q)
 {
-    av_free(q->elements);
+    if (q)
+        av_free(q->elements);
     av_free(q);
 }
 
@@ -684,9 +685,12 @@ static av_cold void uninit(AVFilterContext *ctx)
     av_freep(&s->fade_factors[1]);
 
     for (c = 0; c < s->channels; c++) {
-        cqueue_free(s->gain_history_original[c]);
-        cqueue_free(s->gain_history_minimum[c]);
-        cqueue_free(s->gain_history_smoothed[c]);
+        if (s->gain_history_original)
+            cqueue_free(s->gain_history_original[c]);
+        if (s->gain_history_minimum)
+            cqueue_free(s->gain_history_minimum[c]);
+        if (s->gain_history_smoothed)
+            cqueue_free(s->gain_history_smoothed[c]);
     }
 
     av_freep(&s->gain_history_original);