From patchwork Thu Apr 1 21:24:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26692 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 1B6FC4490F7 for ; Fri, 2 Apr 2021 00:24:55 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E02C66880A8; Fri, 2 Apr 2021 00:24:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2045.outbound.protection.outlook.com [40.92.89.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2EC03687F2A for ; Fri, 2 Apr 2021 00:24:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j0VSA0iykORUgtmjEKcd1qXlaZ23FEPHNyX6wyNnD2/VyethLtHSc259dQz3Uj8SNQpUWko4ePbGdYH6U1B2Yrpuy6YA/RiRtto34vXi16/bBGcbsNQwh7qHEyqUU6hpPZNmcoTdPXbdOnQBtmVgWBv6pmDya+gAlmn1vvhsAbssefuHF060Yeb7IfRduOC+a7dqkQXacn0hhRKZUJxmRPxDzFS12Kudy8tMbUFcgjlsKmuH/Qm4jv/9yquW/01J4EiHN09md+ED1D3hT9lO2tD3ntk8043jonIKs+tHbAIOIYx2lwVK5cTxmBiNU7jUykW19l7yHLBq/JorhY289Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W5dFr0ys3w2hRlr335muj2/KcQj59LXpl3RAQq9YSa4=; b=Um5zoQxFix5SAcYM7JBv2EYPOovTSt+cNQF3Um2kAkbM/8eSuy6x3kLI1tPvVWVgfev5M5pYXeqrk5Rqnqa7arXRWrPfezycJ4taiTsRfEgTJ/xwxDO/ltZISaZ1k0Mo5SiVLWFtas+h/gUm5tpnQ0BdzjRrOc3EW1ygwzS9TiFAJRJ8ya1eTq5udS40gDL4JCsYuD8fMiIz+KCrCOljtNM2CWccERmp5k5I2AjR7gUxanJ3NmX8AEyPjppXbRucnhpyKQo1XLs9x7obq0piVA7OHl20gVJ1hWoGhWR7vuuRLVdL6ocmxxj+c/eABi2QTKwvcTdEdLVdnHTqcqYQZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W5dFr0ys3w2hRlr335muj2/KcQj59LXpl3RAQq9YSa4=; b=AuHUjDwXc7OiWRJbI8gRUKIoKsfA0DDJGHuHXuau2fOjJK/2jKfM6Vuwg50aZXOm/kLiXW+pBR6C5KR3i49oLt96b8i59jRs2jBX/8/Gc0bZdyGWTN63uwNQTkMv4NnOueoji9Q9yNsFS4AZSrar7R36xwhKtKsEqI/H9awjQ45hvBqIMMtWRlnKLmmgTrK3peCo4XbnCE1kQBsPvws6NNFgDSFSns5ioAhU4ALe6l4GX8BZEYi/cAgw/oB9YbSQdl4upMyBdcFMB38lPeLBe3FkJA+Bb10ZZjFHnifkjOXW73KMMjJsI+GcBxroDTl/yU2haqD1W8HS0x4++dxOOg== Received: from DB8EUR05FT053.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::44) by DB8EUR05HT077.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::287) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28; Thu, 1 Apr 2021 21:24:45 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::51) by DB8EUR05FT053.mail.protection.outlook.com (2a01:111:e400:fc0f::98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28 via Frontend Transport; Thu, 1 Apr 2021 21:24:45 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:BB16385D6DB9561D625470B1B43EF96C3339E3DA72A64555C761FD3F8E55786F; UpperCasedChecksum:CF0270EFD727524F350DB0C5175BCB44218AC1B54A35A4020D1ACE328BE3BB09; SizeAsReceived:7391; Count:46 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3999.028; Thu, 1 Apr 2021 21:24:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Apr 2021 23:24:21 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [v6L2JJW9gMSNh5L3GAv67mr+JgGI/KIo] X-ClientProxiedBy: AM0PR02CA0130.eurprd02.prod.outlook.com (2603:10a6:20b:28c::27) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210401212427.2291762-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM0PR02CA0130.eurprd02.prod.outlook.com (2603:10a6:20b:28c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.28 via Frontend Transport; Thu, 1 Apr 2021 21:24:44 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: bd378b4f-f352-4424-67d4-08d8f55491f7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNXIGlc7gHXb8Sy31K73vdRquc7H1zSbIAIwiDTxOeCkpCtxm4f0XUl9XeHAKhkB0A9He1Vp6sOBCbyLwQBr3qMY21QYilZvpImTfUi5W7zwd/6KYV00LhZUkiWTzOtoeW/cogPxPP9I3KiWAkLRjH5ODf/WxuF3Kb9huXyb3AxaeXKzVdi0W6U4uqNqhW3NUT3Jl7iM5mcv13ZWeY2CiCdX7No8dpjiIJorXVgMDrEglw5lDWasetRv6PSfDRBCnVWIHNUogTamk0673C3Nw7QjE0stjA90/0L+ubhxjVcIl/rs28CwsV3JkoYxAWVDYksqgJQS4SRq3sEj1OlfyLXRVsvZf63/RySgvmvgmCNNr4Vd5iwQFCspeKoemIkEqzfZcxWJxwcxa9W2ID0rtH72nnZrExP5TcJrhvtkWIyY+O1ql9LtmC8Sa9sl82tluxCvi/SxRSIAkyFKS41BhTtbj3ovW9YdYgpXhSnxGr+XqSmtdt8MA+4oZLVmLCeaMRED2SfxCv8zQX5zud4WF4R3Ikt4O5J1+VUFfcUpLi/ZU7XbR02iE8Y9tUp/OpInSArY2SyDSEJsTopYyXKmxM0ixWxEVygdJEFDoIr/dY49WkMQDARgxShFupxxPk1n7U/mtunaSrFa/I2kFpa+/SMG3UO/CFmi9A6WgGEkwEmDwyZ7xX0BaIibYjSIOmfY7EZdFN3hzj6h6zYHRnDbh6jBVCIbzOscYBc= X-MS-TrafficTypeDiagnostic: DB8EUR05HT077: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hKvdvkZX7D6UqO6xG6Vt97uFKgankjEk4CDoO8OrA6NMXgu/ZT3bJNXF7ef4oHP/uE27rCzijZeMXA19ITWsS9d6uerlhNIf3p7rB8xTq/qJu+2qK9QYaBunbyEIXLWQY3uHLDGdJ7HUvc7giy1bdoQ1sfU4KwuOZoCVIqqLh2IppBkmKOFfNB1HO1kPcANPLDsaYVY9c1akdBBGrrD4umIB08v2GFSQYPIK66KcEqePRAnSeLC1SYljdkz9iL6jP2sn13DArVJumQcj1iIGbgnp3oKOXQBQOM4CvNNdqOWJLgVs7Fn3Tcnd1CC5fph5wX4RqLE8AWSk2jSibqQB3jzkat0+9zGcBROC8MbTSTDxH4gvXKXJpSUcaWqOuE+cTCHlbTkaqEhaEh2/r9xyBw== X-MS-Exchange-AntiSpam-MessageData: KnisIAj6hQajoiV++s1qlsYi+U5xtukKGPuQ+4CC78POTuHEpLWcxerCLmEo1Kd1A997T+1YfS8v9El63qlYWoGWEQkDIMjz0b8yXDiT7B64BV3Wg+qNWenOrvNhH7oXVUtAmZoM7n2cMSWlvLtioQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd378b4f-f352-4424-67d4-08d8f55491f7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2021 21:24:45.1211 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT053.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8EUR05HT077 Subject: [FFmpeg-devel] [PATCH 1/7] avformat/utils: Check allocations for failure 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" There would be leaks in case of failure. Signed-off-by: Andreas Rheinhardt --- There is unfortunately more of this dynarray_add. libavformat/utils.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 0834c80f4e..13b1bc7c78 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -4625,7 +4625,7 @@ fail: AVProgram *av_new_program(AVFormatContext *ac, int id) { AVProgram *program = NULL; - int i; + int i, ret; av_log(ac, AV_LOG_TRACE, "new_program: id=0x%04x\n", id); @@ -4637,7 +4637,11 @@ AVProgram *av_new_program(AVFormatContext *ac, int id) program = av_mallocz(sizeof(AVProgram)); if (!program) return NULL; - dynarray_add(&ac->programs, &ac->nb_programs, program); + ret = av_dynarray_add_nofree(&ac->programs, &ac->nb_programs, program); + if (ret < 0) { + av_free(program); + return NULL; + } program->discard = AVDISCARD_NONE; program->pmt_version = -1; program->id = id; @@ -4657,7 +4661,7 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba int64_t start, int64_t end, const char *title) { AVChapter *chapter = NULL; - int i; + int i, ret; if (end != AV_NOPTS_VALUE && start > end) { av_log(s, AV_LOG_ERROR, "Chapter end time %"PRId64" before start %"PRId64"\n", end, start); @@ -4677,7 +4681,11 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int64_t id, AVRational time_ba chapter = av_mallocz(sizeof(AVChapter)); if (!chapter) return NULL; - dynarray_add(&s->chapters, &s->nb_chapters, chapter); + ret = av_dynarray_add_nofree(&s->chapters, &s->nb_chapters, chapter); + if (ret < 0) { + av_free(chapter); + return NULL; + } } av_dict_set(&chapter->metadata, "title", title, 0); chapter->id = id;