From 47d2ca3205b53665328fe301879c339449db7a1d Mon Sep 17 00:00:00 2001 From: Mina Nagy Zaki Date: Tue, 7 Jun 2011 17:42:32 +0300 Subject: [PATCH] lavfi: handle NULL lists in avfilter_make_format_list --- libavfilter/avfilter.h | 5 +++-- libavfilter/formats.c | 13 ++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 541dbe7aa7..ac954ca198 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -27,7 +27,7 @@ #define LIBAVFILTER_VERSION_MAJOR 2 #define LIBAVFILTER_VERSION_MINOR 14 -#define LIBAVFILTER_VERSION_MICRO 0 +#define LIBAVFILTER_VERSION_MICRO 1 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ @@ -233,7 +233,8 @@ typedef struct AVFilterFormats { * Create a list of supported formats. This is intended for use in * AVFilter->query_formats(). * - * @param fmts list of media formats, terminated by -1 + * @param fmts list of media formats, terminated by -1. If NULL an + * empty list is created. * @return the format list, with no existing references */ AVFilterFormats *avfilter_make_format_list(const int *fmts); diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 101ef09e5f..ec7fca3817 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -73,15 +73,18 @@ AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b) AVFilterFormats *avfilter_make_format_list(const int *fmts) { AVFilterFormats *formats; - int count; + int count = 0; - for (count = 0; fmts[count] != -1; count++) - ; + if (fmts) + for (count = 0; fmts[count] != -1; count++) + ; formats = av_mallocz(sizeof(AVFilterFormats)); - formats->formats = av_malloc(sizeof(*formats->formats) * count); formats->format_count = count; - memcpy(formats->formats, fmts, sizeof(*formats->formats) * count); + if (count) { + formats->formats = av_malloc(sizeof(*formats->formats) * count); + memcpy(formats->formats, fmts, sizeof(*formats->formats) * count); + } return formats; }