From patchwork Sat Oct 7 00:40:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44194 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4e24:b0:15d:8365:d4b8 with SMTP id gk36csp161290pzb; Fri, 6 Oct 2023 17:40:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEnjgBhlGk4At0w0sRzGZ7WkmPxeOw51AaoxJvRnJC0XDk/da4LsDSlnJb1Vf86n7fJg8gu X-Received: by 2002:a17:906:74c3:b0:9b7:292:85f6 with SMTP id z3-20020a17090674c300b009b7029285f6mr7599706ejl.12.1696639208213; Fri, 06 Oct 2023 17:40:08 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b13-20020a170906d10d00b0099ce780a194si1966748ejz.667.2023.10.06.17.40.07; Fri, 06 Oct 2023 17:40:08 -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=@outlook.com header.s=selector1 header.b=aeIfvMnp; arc=fail (body hash mismatch); 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=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1C78768CB9E; Sat, 7 Oct 2023 03:39:48 +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-db8eur05olkn2106.outbound.protection.outlook.com [40.92.89.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DC03E68CBC0 for ; Sat, 7 Oct 2023 03:39:45 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VlGSm10wdQFjB8ufKS3dYdEx1IUrDhZfnO6rgr0p6FSuvS7B7b5LrlDVjo8jPohsdhw9r1ZEltdrLOd8/UpkFfFmb7EZsedwm324gl5lgBFOOuCFQPwd4Mr2fiD0BCXhqCv2+c7t+8ErTrK9+N7q1bBidxs7v12qDLIwajfHm1f0h4uVy5RQbTujLqlcEozDy35AWG0Y9L2hSkhZG02ni6ZlLgi10ZTA39jUAmK+q6Srrl5rC4XbwzqPsFdH1v5W3j+0mtZ64NzrMXxRNfnY9At6vTZMnM7P97VMlT+uW1IS97VgLO9BqtpBcrQfWia+Q9Cx17uDw+lVLXO1f+sOiA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jU0QT1V24M6CoCrObZZ/xc72FkuE2ethMWbei/p1HFo=; b=IdlAeWQXdo+GmYhBVcu1OuTAlVQzk5HUX9pDfMPGU+oImLr8JDXlw7RxxKsJVRQ+nlWUuYmNUS6+rKuVn40Na1RcD7tJ/zygSTxo6iQNdbZ0UXD8NUi+xUNmc8ecspnD+xgfrIJQdx0lOU5x7x0JbztHFYt90qkTOX7tHuTjiY9qUiXUM+EXgmD+rtlXcqCSjBDHCiCL0oA1hHUsXJLz8mQufckY3rxvh4etAY4Yu3n0fN7H0tSKBX58pV4OYZ8/VCmLlI2dkvCnXeZcTyq1WNCPouXpG73ePpq1rcSOPtM2n15An/u4mH9CBwqL3rHN5Kd9ahF6GMqlZWjKUOlOYQ== 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=jU0QT1V24M6CoCrObZZ/xc72FkuE2ethMWbei/p1HFo=; b=aeIfvMnp0j1obbWCoB/j0bSayYTB6KgMVcmFLV9BhK2tAU2CSr7ehK4fUgLkbWpcC6GlT2lk78xQn2PNKmd/QPCRGBofIsw8lyTTD2ZXcXzroSZPk5FZR5GrJA+HyQPSsaanjvOQgdmhkORXQ3y5Hzsqmr4m5n/f1pDYWqcNxL/rmqR2KHCdEJiUPRWdWVeaLg5oZiqdkV0jr4VVyhEuHkx3nFsRwJEp92VNvVzGrtteD3LaRewyVLfRHgR/N59g014Bgx4OMbLByeXYLIxzzrHV3M3t9dAgMHc2KRIBmOhrdkR0/VcYnFSE/aZu/m+UW4YdSDlx0/rFHBlYyaBTTw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0050.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:14d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.37; Sat, 7 Oct 2023 00:39:34 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Sat, 7 Oct 2023 00:39:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 Oct 2023 02:40:30 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [hKbjiH9XZBebhrE2AZIcck/ifoTm5/QR] X-ClientProxiedBy: ZR0P278CA0154.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::9) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20231007004031.2024778-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0050:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cc0f310-e360-40e6-8866-08dbc6cddfe0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DLWUAw5mWBlmwOIaPUw4uC38uw8+OHSEW8Ua9y28A0fC/iL7nJEdnqs7cTfxac7+ee7s54U2K9tq+Gv0iOoaUelRxKOmwTjlAunofp/eIBuZmEzM8V73gEjMf+mmAMJxIcvYOjeTwCb/5EOHogFW27IQ1bdlxoUXqpHTz6IsKyMnNOdPwHs5V2+ma/usrZ1+IThlRyg+Cffan71ErtqlDLklRGrJl9SMG75A9mFCb3bplbIaoL4MsgrIplNBKqCvxV13gduYTOYlDTAtMWFb9ZUK/R33fETCGpsNrkWziQNQg1clsOdSnDIVuHKr6KeSqMHHltrROUIiLqw6Uu9739/5rjiecb5EIOfBwZ8eol5omFTg7MU/2Rh36Awl5taVDSSBcKGAVpxlnIOYkYzSxBhrHwO1HmQ4nLglTCN9IZyMLzWFdPDWS9LAbwULWCvCwBfdugQUnKXKYLVrMZEjbsbbAOH6c1EGVgWl78/MNmqBifdbPrO4nzj4OEF9KMLZHBibAKFq4k/azodtPEe3Pjtzt7cr/Qqjo16WKmr/nF1rbQ9Tbx57kZ59bW2VA9BzstmCsil6r8u4o/etzfTnr+RombeTJSxZXOQSdciXS+gu+0Cat2pPlbLx0bKnW39L X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fJ6nh1EHV4D6CxZQAiF6FS8vXIuZZXKNPcU/bi71DrkOFN7vetdbRSYreZak+uT4DH5DWtfMOZm8WkXIB9YnChkRv+PPNkfRr7RvIVHRw0wEpWpp1qCGg/PG6lhxIGed/xx/PLh1e7FQcNirfSLIdBKFzFX7oAB9lCsYJXYJ8wGDCY/ZPIdhl2iQxbDpXHI+XvRxBnQ4q0Gi6STg3eovzFjxSAMtIzhtbWY/OBhLYqb9U7aAsKVn6aMvtE1JQ5tKtwe78zTvHP2cYB0m4OmNsa8aUCdFHFXJPvieS+HaKCFMTgJNWN2vTcIlQUWwy6cnXG8FM8BUsczlO0DnnAmLGHnAZM45DiU7VziZi8dykyPU56HUai0DKMXCSTAfFFC2xVHruz1WnAr8ntzEvSIJfEY1sU9hKQey5gw5B3aXY9ZwobLjxGNUlEiEmwISwbwFxMQKtUX1I8qSMMkrn3Y+vOXs6+vj1V2Hd9vZcSvLBpzDNMuuy8GBaGS3LGoI9KKUN+DsIYLPW9eBQTzdhOxlZLnQ2bARQcRNWCfanntGt3HC6WHiaQNCc+1u2c2MteKuqeaolPJQ+RguNwUI/hx8z3JaLtFzZw/fxETdk+2IfboyhqU3Skq7kGYVZ0CKsNOlVISNJkbKdiUxXH1+rGpSHcUZhpFEPk3XwDgTB51YziZCx++2HoLt99cv2y3p6aNVdZiorhK+M68gcN7g+wHGEmonRnrJesLYMs5+Zdn71jU/r3JRPuMBqvczCstdBFc6dYQRO3tgMwQBi+MdNM7LM2ZY4fe7qFMIi9c/361o4nCPxQa0wJeaAvuKxgGamieu+QKb+wGX10Vod9o+RBME2oMtGhU4jKY3kFN5Giz7SYfcY/MZLEtTo00kpGG7wJAKU9OjoRS1RLvwbcIZe/CNPDUBtBjqTVF5klLWljP9c3WLhEIHllz65Z7QZGbIcJp472B0iYU6GyoqhV2AHAEL0dcEuzyf0ZYQxaP3m0LLoGITYskOe3y91KHmRWx1Ys2MxXf8VB/LGiBOrYA2U/A9CpLptCsE5Cf+PNE7VMuqWO6H/qLfeGjKHWWu2vIEpcwnQkPg66AQh05p8eLLwNNbY2UYG7F8ayEH42M+ppz9uBDi2kyuzLsfQdcrKnOdZSoOt7aiA58YGr8nJcRaxi2B7FdjzOAEQPQ6VxH11Qq31ohcG9U1wWyGkLRzMxKWiu/DLT4roAoFSuG8QOexAmhY7yBgbg0ZAT92h8AUPsu9uC4tNHq2bpa+dbr2L4mzYO6S X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cc0f310-e360-40e6-8866-08dbc6cddfe0 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2023 00:39:33.2153 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0050 Subject: [FFmpeg-devel] [PATCH 6/7] fftools/ffmpeg_demux: Fix leak on error X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: 0bnhxUFGiwrv An AVFormatContext leaks on errors that happen before it is attached to its permanent place (an InputFile). Fix this by attaching it earlier. Given that it is not documented that avformat_close_input() is usable with an AVFormatContext that has only been allocated with avformat_alloc_context() and not opened with avformat_open_input(), one error path before avformat_open_input() had to be treated specially: It uses avformat_free_context(). Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg_demux.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index 41fcb678c6..350f233ab7 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -1462,8 +1462,10 @@ int ifile_open(const OptionsContext *o, const char *filename) if (data_codec_name) ret = err_merge(ret, find_codec(NULL, data_codec_name , AVMEDIA_TYPE_DATA, 0, &ic->data_codec)); - if (ret < 0) + if (ret < 0) { + avformat_free_context(ic); return ret; + } ic->video_codec_id = video_codec_name ? ic->video_codec->id : AV_CODEC_ID_NONE; ic->audio_codec_id = audio_codec_name ? ic->audio_codec->id : AV_CODEC_ID_NONE; @@ -1488,6 +1490,7 @@ int ifile_open(const OptionsContext *o, const char *filename) av_log(d, AV_LOG_ERROR, "Did you mean file:%s?\n", filename); return err; } + f->ctx = ic; av_strlcat(d->log_name, "/", sizeof(d->log_name)); av_strlcat(d->log_name, ic->iformat->name, sizeof(d->log_name)); @@ -1527,10 +1530,8 @@ int ifile_open(const OptionsContext *o, const char *filename) if (ret < 0) { av_log(d, AV_LOG_FATAL, "could not find codec parameters\n"); - if (ic->nb_streams == 0) { - avformat_close_input(&ic); + if (ic->nb_streams == 0) return ret; - } } } @@ -1582,7 +1583,6 @@ int ifile_open(const OptionsContext *o, const char *filename) } } - f->ctx = ic; f->start_time = start_time; f->recording_time = recording_time; f->input_sync_ref = o->input_sync_ref;