formats: Check memory allocations
authorVittorio Giovara <vittorio.giovara@gmail.com>
Thu, 12 Mar 2015 15:34:32 +0000 (15:34 +0000)
committerVittorio Giovara <vittorio.giovara@gmail.com>
Thu, 12 Mar 2015 17:46:47 +0000 (17:46 +0000)
libavfilter/formats.c

index ea61ed2..4b6b3aa 100644 (file)
@@ -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)