summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/formats.c11
1 files changed, 10 insertions, 1 deletions
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)