From patchwork Thu May 31 22:24:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephan Holljes X-Patchwork-Id: 9199 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:11c:0:0:0:0:0 with SMTP id c28-v6csp162548jad; Thu, 31 May 2018 15:26:35 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKzbFzKPK2qLTEg2LPCsaizGWdGKDAAHaDkC/+r7vMOut2HnfQnibH5e4VyjZob+2x4jxlI X-Received: by 2002:a1c:3e4f:: with SMTP id l76-v6mr893025wma.145.1527805595416; Thu, 31 May 2018 15:26:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527805595; cv=none; d=google.com; s=arc-20160816; b=cCUWrw9/kr3NSA+/JbZMcTkMOGNg8jXWtp5r6hybCm0Am9FSzThFk1bt8ItDVOvf3v saGrEe9yK+KSmWDDwAl8YbtiHalM4Uc01+TyIFcDA/UuuWm4Z7wa+pkiDRxuNobz6ORy zCjlHpbVi9kffhhG9ElF6frmN6NSKNHQaieqrGdvRfzbky4d5tOewoB159oTiHrCxrF6 SM+IxDOWE7qHecRc5SI8nj4JbaJNk1lXsz7ym6nVwtrfMdwRstMDUOhCb2ANho3XsnFC K2elBc4MQd4XXGriPTqxjzT3D/P726hfFh97HqxF2vDuPvXn05HqzdKMpSIq+oW3UO9S EBwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=YSYyy/XBDt2EQvSYlOSAxTse4ppvhNoFkvmWcy68cKE=; b=GEYk2FqtVF9iKFsNfs5BduS10ysftRkEjZ7AYMVFsUloijENlNn/pQBd92x6wScwYO enVnt/c4eD1RJuMagg10wZpsJAQIXu1Gd6fg8ar6JdR8ysMA+Jeuy5mES5DxbONvWUR8 Rs6jWcmTHiGJnbx80F5TBxiyUHGpe3N4obsqsXSyvH7pXPOxhRA7zvJO/QbHR1J9yEFB 6tfxrch5eWZEuAQLnL/LxkFrTyXsb9ppQJKocU/nrE9Pu6aqCdICq9HjgVo1vihuH+Ly DmtpgGb4CEx4RdYwvHV/VVFNAqq+aP6R1bbvQ5b8wcgX3qaPFYja9oFOIZMaSE4LwwTt SqLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@googlemail.com header.s=20161025 header.b=ThhypNPd; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p20-v6si18720838wrc.237.2018.05.31.15.26.35; Thu, 31 May 2018 15:26:35 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@googlemail.com header.s=20161025 header.b=ThhypNPd; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4530168A4F6; Fri, 1 Jun 2018 01:24:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D4FED68A4D4 for ; Fri, 1 Jun 2018 01:23:59 +0300 (EEST) Received: by mail-wm0-f41.google.com with SMTP id j15-v6so5140327wme.0 for ; Thu, 31 May 2018 15:24:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Fms2oO9/lihit3KpP16Xjoiy5ab034GUufk/5S9SsDM=; b=ThhypNPd3beB0nKS6R1g0YttxIkhMrCPw193AmFIo/vR7HjGBduMn99Dio92nbXk7V kWrVK/wVRGdmbVaYYmuvSrrr5VTXh1yzKCL+HmfdPP5RqpqaEH3UXbC5x6PiTUzrW8aU hq9GwmmZAHceXNS/0KtBI7jkKqN1xUJDqFh1pzsfMXAvi0RtzuubTftRZQ/SC2Z8ERBx 79HZup5qwKKhmOOW0Z5Q9uSk7ph6/3P8ts/p7muUya4l5e8vJj4Q5vOhJz8VdK5cNqTl Ve1CHBrv7jvtM1yLtZq6EHgW8JGCiICa4wP9fMmBLHQS3MnAOdGdeFWMZ7K5DQPk6Z9w jFnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Fms2oO9/lihit3KpP16Xjoiy5ab034GUufk/5S9SsDM=; b=CmO5yClUkOBbjFJlJNXhWignfBmWAqOb7B5L08lIna3u9ABF9T4iH9tK0LTdkYK/XW PoOu6SkJsXyk+UDhfIB6/7gDc+iBXgStwOkSvQ9V1h8pbtRYC+4zBQRW89ZR3VeAPpxI zxo8pgKGOcZxyVzMqgsXx88oICC04jnnlaydQTVE++Rrfl+WQPLg1fCyuzsj1baq8PEh aquKliPOH28KWFd4lRkxRsPsMVEQe46a3YrUxtqKUu5f7qizXprJcVBMoaHxROhF9NJP Pplavpenq51hLGrPP21skrvC5Mn6LO2A7/RzSVXY91wcbdGTWQhoB0SBNeEfvUwIg5lp tgRg== X-Gm-Message-State: APt69E06cy4Ziy02Q9T8N3nKnIinbfIk5KNEgF9vI7bieY25bFhstU1i ISQ9SZw3Bo9palcs1NOXlbTwaw== X-Received: by 2002:a1c:5f82:: with SMTP id t124-v6mr991397wmb.124.1527805484235; Thu, 31 May 2018 15:24:44 -0700 (PDT) Received: from localhost.localdomain ([46.5.2.0]) by smtp.gmail.com with ESMTPSA id b72-v6sm705017wmf.11.2018.05.31.15.24.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 May 2018 15:24:43 -0700 (PDT) From: Stephan Holljes To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Jun 2018 00:24:08 +0200 Message-Id: <20180531222415.24966-16-klaxa1337@googlemail.com> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180531222415.24966-1-klaxa1337@googlemail.com> References: <20180528182711.3221-1-klaxa1337@googlemail.com> <20180531222415.24966-1-klaxa1337@googlemail.com> Subject: [FFmpeg-devel] [PATCH 15/22] ffserver.c: Simplify error handling in server creation. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Stephan Holljes MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Stephan Holljes --- ffserver.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/ffserver.c b/ffserver.c index 6f76c3e..fd8cadd 100644 --- a/ffserver.c +++ b/ffserver.c @@ -534,13 +534,12 @@ void *run_server(void *arg) { pubs = av_mallocz_array(config->nb_streams, sizeof(struct PublisherContext*)); if (!pubs) { av_log(NULL, AV_LOG_ERROR, "Could not allocate publishers\n"); - return NULL; + goto error_cleanup; } ifmt_ctxs = av_mallocz_array(config->nb_streams, sizeof(AVFormatContext*)); if (!ifmt_ctxs) { av_log(NULL, AV_LOG_ERROR, "Could not allocate input format contexts.\n"); - av_free(pubs); - return NULL; + goto error_cleanup; } av_log_set_level(AV_LOG_INFO); @@ -554,36 +553,22 @@ void *run_server(void *arg) { rinfos = av_mallocz_array(config->nb_streams, sizeof(struct ReadInfo)); if (!rinfos) { av_log(NULL, AV_LOG_ERROR, "Could not allocate read infos.\n"); - av_free(pubs); - av_free(ifmt_ctxs); - return NULL; + goto error_cleanup; } winfos_p = av_mallocz_array(config->nb_streams, sizeof(struct WriteInfo*)); if (!winfos_p) { av_log(NULL, AV_LOG_ERROR, "Could not allocate write info pointers.\n"); - av_free(pubs); - av_free(ifmt_ctxs); - av_free(rinfos); - return NULL; + goto error_cleanup; } r_threads = av_mallocz_array(config->nb_streams, sizeof(pthread_t)); if (!r_threads) { av_log(NULL, AV_LOG_ERROR, "Could not allocate read thread handles.\n"); - av_free(pubs); - av_free(ifmt_ctxs); - av_free(rinfos); - av_free(winfos_p); - return NULL; + goto error_cleanup; } w_threads_p = av_mallocz_array(config->nb_streams, sizeof(pthread_t*)); if (!w_threads_p) { av_log(NULL, AV_LOG_ERROR, "Could not allocate write thread handle pointers.\n"); - av_free(pubs); - av_free(ifmt_ctxs); - av_free(rinfos); - av_free(winfos_p); - av_free(r_threads); - return NULL; + goto error_cleanup; } for (stream_index = 0; stream_index < config->nb_streams; stream_index++) { @@ -671,6 +656,15 @@ end: av_free(ifmt_ctxs); return NULL; + +error_cleanup: + av_free(rinfos); + av_free(winfos_p); + av_free(r_threads); + av_free(w_threads_p); + av_free(pubs); + av_free(ifmt_ctxs); + return NULL; } int main(int argc, char *argv[])