From af09be4f4b2f87e71a3396f54c24a166092ec8e3 Mon Sep 17 00:00:00 2001 From: Wim Vander Schelden Date: Tue, 21 Jan 2014 14:38:16 +0100 Subject: [PATCH] Fixed a memory leak in dvbsubenc.c: sub->num_rects was reduced without freeing the associated rects. Signed-off-by: Wim Vander Schelden Signed-off-by: Michael Niedermayer --- libavcodec/dvbsubdec.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c index 8f4e9848028..999b3fa34dd 100644 --- a/libavcodec/dvbsubdec.c +++ b/libavcodec/dvbsubdec.c @@ -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); -- 2.39.5