From 72555f4a382744dd7f02edcb7fe6f8ed91f4dc3c Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Thu, 31 Jul 2014 12:55:41 +0200
Subject: [PATCH] avcodec/pthread_slice: Check for malloc failure

Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 libavcodec/pthread_slice.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/libavcodec/pthread_slice.c b/libavcodec/pthread_slice.c
index 334aaac0fc5..fea989fc4c9 100644
--- a/libavcodec/pthread_slice.c
+++ b/libavcodec/pthread_slice.c
@@ -268,13 +268,16 @@ int ff_alloc_entries(AVCodecContext *avctx, int count)
         p->thread_count  = avctx->thread_count;
         p->entries       = av_mallocz_array(count, sizeof(int));
 
-        if (!p->entries) {
+        p->progress_mutex = av_malloc_array(p->thread_count, sizeof(pthread_mutex_t));
+        p->progress_cond  = av_malloc_array(p->thread_count, sizeof(pthread_cond_t));
+
+        if (!p->entries || !p->progress_mutex || !p->progress_cond) {
+            av_freep(&p->entries);
+            av_freep(&p->progress_mutex);
+            av_freep(&p->progress_cond);
             return AVERROR(ENOMEM);
         }
-
         p->entries_count  = count;
-        p->progress_mutex = av_malloc_array(p->thread_count, sizeof(pthread_mutex_t));
-        p->progress_cond  = av_malloc_array(p->thread_count, sizeof(pthread_cond_t));
 
         for (i = 0; i < p->thread_count; i++) {
             pthread_mutex_init(&p->progress_mutex[i], NULL);
-- 
GitLab