]> git.sesse.net Git - ffmpeg/commitdiff
Fixed a memory leak in dvbsubenc.c: sub->num_rects was reduced without freeing the...
authorWim Vander Schelden <lists@fixnum.org>
Tue, 21 Jan 2014 13:38:16 +0000 (14:38 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 24 Jan 2014 23:41:57 +0000 (00:41 +0100)
Signed-off-by: Wim Vander Schelden <lists@fixnum.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dvbsubdec.c

index 8f4e9848028fecb6c1154167d2633401a86190cb..999b3fa34ddbf9410734000c126f75b99c02fe49 100644 (file)
@@ -1384,7 +1384,13 @@ static int dvbsub_display_end_segment(AVCodecContext *avctx, const uint8_t *buf,
         offset_y = display_def->y;
     }
 
-    sub->num_rects = ctx->display_list_size;
+    sub->num_rects = 0;
+    for (display = ctx->display_list; display; display = display->next)
+    {
+        region = get_region(ctx, display->region_id);
+        if (region && region->dirty)
+            sub->num_rects++;
+    }
 
     if (sub->num_rects > 0){
         sub->rects = av_mallocz(sizeof(*sub->rects) * sub->num_rects);
@@ -1437,8 +1443,6 @@ static int dvbsub_display_end_segment(AVCodecContext *avctx, const uint8_t *buf,
 
         i++;
     }
-
-    sub->num_rects = i;
     }
 #ifdef DEBUG
     save_display_set(ctx);