From 16c3cb9bbf2d9f5dc1c77433b731d50a560d7367 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Wed, 12 Dec 2012 12:15:57 +0100 Subject: [PATCH] lavf/concatdec: avoid leaking URLs. Use av_realloc instead of av_realloc_f to keep the original array in case of failure: it is freed in full by the fail label. --- libavformat/concatdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 29233e2c8c..858701fd9e 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -69,9 +69,11 @@ static int add_file(AVFormatContext *avf, char *filename, ConcatFile **rfile, if (cat->nb_files >= *nb_files_alloc) { unsigned n = FFMAX(*nb_files_alloc * 2, 16); - if (n <= cat->nb_files || - !(cat->files = av_realloc_f(cat->files, n, sizeof(*cat->files)))) + ConcatFile *new_files; + if (n <= cat->nb_files || n > SIZE_MAX / sizeof(*cat->files) || + !(new_files = av_realloc(cat->files, n * sizeof(*cat->files)))) return AVERROR(ENOMEM); + cat->files = new_files; *nb_files_alloc = n; }