From 72555f4a382744dd7f02edcb7fe6f8ed91f4dc3c Mon Sep 17 00:00:00 2001 From: Michael Niedermayer 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 --- libavcodec/pthread_slice.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libavcodec/pthread_slice.c b/libavcodec/pthread_slice.c index 334aaac0fc..fea989fc4c 100644 --- a/libavcodec/pthread_slice.c +++ b/libavcodec/pthread_slice.c @@ -268,14 +268,17 @@ 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) { - 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)); + 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; + for (i = 0; i < p->thread_count; i++) { pthread_mutex_init(&p->progress_mutex[i], NULL); pthread_cond_init(&p->progress_cond[i], NULL);