From c3bd1d60af97e8d2568dac9fcce7bdabb4ff93c8 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Thu, 12 Mar 2015 15:34:32 +0000 Subject: formats: Check memory allocations --- libavfilter/formats.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libavfilter') diff --git a/libavfilter/formats.c b/libavfilter/formats.c index ea61ed2da6..4b6b3aa3b7 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -171,8 +171,15 @@ AVFilterFormats *ff_make_format_list(const int *fmts) ; formats = av_mallocz(sizeof(*formats)); - if (count) + if (!formats) + return NULL; + if (count) { formats->formats = av_malloc(sizeof(*formats->formats) * count); + if (!formats->formats) { + av_freep(&formats); + return NULL; + } + } formats->nb_formats = count; memcpy(formats->formats, fmts, sizeof(*formats->formats) * count); @@ -257,6 +264,8 @@ AVFilterChannelLayouts *ff_all_channel_layouts(void) do { \ *ref = f; \ f->refs = av_realloc(f->refs, sizeof(*f->refs) * ++f->refcount); \ + if (!f->refs) \ + return; \ f->refs[f->refcount-1] = ref; \ } while (0) -- cgit v1.2.3