avfilter/vf_pullup: fix memleak of metrics for last PullupField
authorPaul B Mahol <onemda@gmail.com>
Wed, 18 Sep 2013 11:49:58 +0000 (11:49 +0000)
committerPaul B Mahol <onemda@gmail.com>
Wed, 18 Sep 2013 11:56:35 +0000 (11:56 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavfilter/vf_pullup.c

index f8f888c..a81bc56 100644 (file)
@@ -718,17 +718,17 @@ static av_cold void uninit(AVFilterContext *ctx)
     int i;
 
     f = s->head;
-    do {
-        if (!f)
-            break;
-
+    while (f) {
         av_free(f->diffs);
         av_free(f->combs);
         av_free(f->vars);
+        if (f == s->last) {
+            av_freep(&s->last);
+            break;
+        }
         f = f->next;
         av_freep(&f->prev);
-    } while (f != s->last);
-    av_freep(&s->last);
+    };
 
     for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) {
         av_freep(&s->buffers[i].planes[0]);