From patchwork Mon Feb 19 21:51:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46376 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1517858pzb; Mon, 19 Feb 2024 14:03:54 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUj3snxCeErMgrEpdZCJLD4QL+1QoLPoclyDabbJ8m+RSu1DmILiL9x0CB5BQH8g0VDFFAohiLyfC/2ubjfBlpBDBoWNhgafRfj6w== X-Google-Smtp-Source: AGHT+IFY4GfDkvc8z+msA/ZFYFubCqn8nrDeInzMS652IDc+jWx+e4iDf2ATb5P32WdLTM+02cJG X-Received: by 2002:a17:906:c794:b0:a3e:9885:954a with SMTP id cw20-20020a170906c79400b00a3e9885954amr2469126ejb.65.1708380233945; Mon, 19 Feb 2024 14:03:53 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j7-20020a170906430700b00a3d21e8d419si2809614ejm.285.2024.02.19.14.03.53; Mon, 19 Feb 2024 14:03:53 -0800 (PST) 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=CS+GMw0q; 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 9727368D426; Tue, 20 Feb 2024 00:03:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2028.outbound.protection.outlook.com [40.92.73.28]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A5F2668C651 for ; Tue, 20 Feb 2024 00:03:50 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KfnH6RU/P3KHQrvTITa6YFx/rAwiVyd4Yo6ghZdqTFpvjM7Y2DhXqejXN6OiAvypZXcD/PdxInjA0aSSDROYkyIA294hrVbMYHKk+/Hr86e2GAQl22nhq2qmVbJiRTYO4yX113GkYc0RyyvnCDdYdYqTqPRAfYziWl2tOp9oXMIVpms6QtlSec/uwLRDdyAnjuMAPC9J3q9Z9t5/2J8SeCwo5f/xc5lj0L6moySB0P0C99eGhV0Sj4bpXLB5QiR+dmpl7dpenX1hwFRMj3DlBcpo+ghQzEq9Vf3ADAUBeYIVT3iLyigcqiKMf0DPG59XCP7QgvXL2qJflReiTpEB3g== 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=jxQsqRQlnCfiFafnBGx0eJU3eyqxfY8ADBoFp3zkFqg=; b=ZYinF+uYEERc0tXsMT5bQUrOP4XADSCTdt8HwKbf8b3NDSyNImMdAA1jq8NMUg262807xXJa/Ze97Z7kxTZYuSzrz+qnHWJ+uMAynCDbXd8ABr/PzeRXRbpNhwus4pKMCf6X1zmz2EU2QmWXsbes2MMIkI50Tzj+38CDRxI7WYejmJ9+IcFz4UmoRqDuNppUJh2b7NYG68toCuAu7dCKsgZeAqiT2qR5xbs2XWWRr9yHWNjj524K6shvdnoUPntkQv/nPA+pNMq06/EGYfVSn5qk9LloI51AsM6FRZb0xWNia1w4XDLauJMYlvh3r/5Z6Il4Br5C3zQKf2w07bl0Aw== 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=jxQsqRQlnCfiFafnBGx0eJU3eyqxfY8ADBoFp3zkFqg=; b=CS+GMw0qse2qnPKGcPGkc39ZY0kjPltkR5R3qW6648USqeOLXI3MDv31RD9f8VB4wpKSPqZN6EaV4BAAAerkeVRINThsM7idLq/Vw128wi2YyIb0v763skUX6r/iC25ILpYQKulADtvg/A3wxEISJApmUbzHPALFY1xqIE/bUA2K73eykawz1vAb6FJdYUPi8JCT0QqkQozI6EVi/5o8KPoYQJzukka61ZUB73n7u7T1sVBKx1SFQDZ2moKAkiedmhfbAx2VSaNosD/FNJUTWBiu6t3gL4OC01UW2VJ2KhybmdMA/BCm92zgF3glKfW1RTOoUcHtyGHvX1EZOjV2vg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0161.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:174::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Mon, 19 Feb 2024 21:49:31 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 21:49:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Feb 2024 22:51:17 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [WxR/T1y1Z+GMau/86F6MWfgpxexxEkmLp7cP/QjojbE=] X-ClientProxiedBy: ZR2P278CA0072.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::9) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240219215121.743167-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0161:EE_ X-MS-Office365-Filtering-Correlation-Id: a38856cb-b85f-4188-9bc8-08dc3194a79a X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnomf9zhpdf2mR/+OogaImHYcORq6icNPBPsC4I4WfK8l9s8Li1djBjrMPPWFu5gp6krH0I/U5m+nE4HRvKu9tHpeN/x7fb5LdD7PMJgtRyOMUrI8Q7UUAqocgB9z8esOmeWogFhOYlS6yV/VRyCYHT5KO42xbKswPwVf1kpT1Cr4We4pb0qv+Z6HKHLXN4Cuw36eCGH5MGp5yGSWsRRoliIGRl7RPbW4YwwsMHVEtyxPSO4zC9OS/yc7RVyIOjob4xhTXj7XHtl1cDoasmWAfEXnQe1eq7767KgXxg/pJmgFOaPeu7yh3m9PH7Bt5iknOJaPqmSdcjJKJNe6NhjPVv5O/ASD0bG0Z3u0TDoACgy+gAQ1BQ7pD7Fx5Fua4gtwYWfYBHTjtem/TSBV5rIs7FIEvSG7TV77JDAtNzT4KJKR6jkxgrgg2uQJD3d2o32OiX7jf1YxyLnA0MYU3GNjBlUOIHOO+haSBZK65k+7ke6uSSJqYlJ1wZnGOQQ+kGCtZA8G04L5u/jldgto5rdmNurWw6lrwAjyQcN3reYLKj10XRMrJju2lhqSCHFNP1lscWFIsxbIsCt37PDRq21SlgQVaXeW6yUrnDLVuYNFSVqvRxs+WLtNEaUgkKFd7zTLwG4D6wrzcTlHTFulzyKJRebbN6fechTSBdZn2H3k5DNlvQu89RyWYf4iE/hMqHNw9UIF13xo5yYs9Wl+kWjHCYgmc7N1BfLSgcdc1IJXSIaBWYlcEsLPo/7E7Q+QxI5+CQ= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xNR0Dbwh4+pedxj45+9WafkrOudbIBaPJ7Em1L+UpwD298Ljzuo6GVZFVp7vrQ9kuSvc80LJUrM3rPQEVRc9p+jl/i2xV6ui8QEYhLfcZFSIFHrBqLaUT5jvcuTejr3d34SXIlo/z4PGqELLSztJmfBR+mW/VVjvuiy7EwBhdD2KGe9ZFvZGK7CR3F5F74/KUYBxz5joTfx1HsoCafGqx9c5G15eQQIhlDi6lGMdhe7Ts+3hlxxzUcwud/kkn3cr1dzpNWO+52EyA5WngxmfoPei6zQW0B9Hc7e+xx5+e68PTlv/JwSNNQldklJDB2VRBoBaG+817iBDwN9R4u/jLgjq89CkHghCArZgDjKfaIYqvbb3+M3v9hqiLhUVAE9aCOMfe4QZjpKzDljGiIgGB9DlWRyj9njTasHGKywfpkf2HNA/jOv3OxTvBTy9oGZn1zwAriApHIwCS1PP+Gm3QTrWbbhTtMzphainEntWuWYP2XTKObMFoiXAzkpu683atxdljoxYQQ9OsfLKoBXGnIqE2c0ptDshN5jKowKVWqdLfxGXHPZL4k3Qo13ALnIIAFfjykYLvMILFQg2qs1OvM7GKAt/Z3li6CFEvEclHNYXvX8RcVmy1myEhPPME5o5 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0SKVYQmBbehEIxW75qpEzxL8MLOR87EAQ8t1zf/jW5JP8M3aXn4lQRO2BSUDdVZpMpVToqKx1KP5g70x1o7NqjnUMZ7AfWLQu481bOPtWm8LYBvdukjJFH633bFWg6cAYfY6dW/pPfJdG09TEGN7n9N0pjxfd+QGS2pj67xXkHxiFc7KLfAV52qyz6A8rK9UWU/Hj67IKFXcfLL/sYix7kFByA49r2472kOI76qKQcuxsnkMkHjfL0I/kBv33JCBrKHBZJ2dFbUa172PGRgwelBUE27fGe/HM4qItmOns8++muHistG4HMvkQaYqveVG10CnQrT9xEtowfkDwhK8DSO5E1KxeiSJ6kZlPxoqUVqGyIpRdt15MjxdpJ3DXWp+18/7vIScCxRdtx9EilcGGbyoRQJ5TVdJC3iaBNLR9b8kAIaOq5RUjRh+83vaaLFA/8J16k1y9wdRNe8ofDKi/g9WBevdjUhYLCIuHEzuMbZd/hL1jE7Qt4REKMwCS9faSkTd+3n5DFWTmOHik6DKqrYHpc+QBRJeBjqnuP4yjLydnwXno/MOgnl4wVA0h0ZA+RvrSlqAGvWjRM7e6j6RN7E69avJjj0+zw/7w4+xOVbtaAFKWirk1K7kIzBRbDFE3V403nDhSDk65WNpHbi6S7yre0Jeygm4qlO5tT+xN48SlKLfz+W0ytEfCW+VcEWOSGx3d7GBiK2c6O6PIetmWutM+boQWIfKz5koDS08ix+sFhhHYN7wMhaKhB6FWXYe+h8pU7pXZBN3mMCYxbj9UZCEUsm101YhnELayWIIcvkMPETFOEUTMgitzmgjpGaUGFdQSgi2R3DtGxrZInhMfal7opnXWuQB0xbDR2ynJsmWC9GIjCv5aYg/raggUftn6DyFt1bVlmo7Nssw5PZkSIDxE94iIiEvDIg8VFIr02aqEXYz2iXtizzcVHqkxFHQEx6ahBIuiS/bGib3WZYcMlvjlr6hzZrAFhO/NVY5okYG8HiF1TY6ahH0RzQfj7OBa077aLGv/ntxO08C//f7UWblUmjRyfc38D9FbSY+k81uwc95OIhgrsy8qKQ0ZhCI7RIGiCosRZsTuug+gnuLNkTYTQm3BPkyWuGLY7Yf2X76H5LEAdHXtFw57efexjPDsxGqhpC2w+wrcFFeqzm3fr1ff8uztcFhbwMITsyl755QlhJLrDAPZFbeIviAHlfR7kVEeHhmisOfLeQdGq5UB0eIaMaCgv2m/D32eU0uBx2a83QDPNiv9aNK0IAo8/Eb7SIQj1uLOR5y+dDhpsCbmQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a38856cb-b85f-4188-9bc8-08dc3194a79a X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 21:49:31.8363 (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: PR3P250MB0161 Subject: [FFmpeg-devel] [PATCH 1/5] avformat/iamf_writer: Don't leak on error when adding ParamDefinition 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: COJ8n5IbR6zo Fix this by postponing the allocation. Fixes Coverity issue #1559545. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf_writer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index 1a360dee2f..897b06310f 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -138,10 +138,6 @@ static IAMFParamDefinition *add_param_definition(IAMFContext *iamf, AVIAMFParamD iamf->param_definitions = tmp; - param_definition = av_mallocz(sizeof(*param_definition)); - if (!param_definition) - return NULL; - if (audio_element) codec_config = iamf->codec_configs[audio_element->codec_config_id]; @@ -160,6 +156,10 @@ static IAMFParamDefinition *add_param_definition(IAMFContext *iamf, AVIAMFParamD param->constant_subblock_duration = codec_config->nb_samples; } + param_definition = av_mallocz(sizeof(*param_definition)); + if (!param_definition) + return NULL; + param_definition->mode = !!param->duration; param_definition->param = param; param_definition->audio_element = audio_element; From patchwork Mon Feb 19 21:52:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46372 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1513239pzb; Mon, 19 Feb 2024 13:51:14 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXaEbUr7aAVBMVcPz2K23sRdshYuwRuq42T45gkdnk6V1v/0SEEAyUpE90Eny1emflx2xn0INjxfKe5VR5TeYWWumOlm8rmniSRNQ== X-Google-Smtp-Source: AGHT+IF3uWTlzxckdSOFCBm37A0eQYSnfLAGsVl9FF8ZNwbII45juOXBzCYjtfWH8LqwxyzjDdHi X-Received: by 2002:a17:907:b9c4:b0:a3d:ad12:1923 with SMTP id xa4-20020a170907b9c400b00a3dad121923mr9150238ejc.6.1708379474006; Mon, 19 Feb 2024 13:51:14 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l4-20020a170906794400b00a3ef03c37e6si111342ejo.355.2024.02.19.13.51.13; Mon, 19 Feb 2024 13:51:13 -0800 (PST) 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=m43tvwi4; 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 F132B68D410; Mon, 19 Feb 2024 23:51:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2076.outbound.protection.outlook.com [40.92.91.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1045A68D400 for ; Mon, 19 Feb 2024 23:51:04 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e7kM8iirSORKU9ghatgK5LA8AdF8zsQYU3MpsRLys2zK9zq6jlB77xQbxR5CeZSi5e+NxxQSkZ8dBn2FLA8uz3YiZpC5UxAjZ1oE4Mttkq+kA1mSNiG6vHJDtecs6IF2Kz6SvSO4C3yiYJ14lZqNzTvwSZMRlJP4Z0lGAzsyHhGfos+5l4mM2MpIy+QBCdyr0AY+nr5XlQh4KKXHQH2c+oh9pbyXwvwECEWRydISP0CggHu+eXV+gx1qRTf351c7PPzR9cYkb4xesgUA+TWAZanQ50SW4qDnhs8CPiTqLNkEz9TTexmZkA8t+HZH1R70VqEJSnxknnTAPYku18LAFw== 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=1g4F6CeiyvB57piHPn0C75VO4i6YT0F6yBYdx7YG40g=; b=GVSR5Jp4XHXPVN3asyjs9BzWfTkDGOadyyc3h0XTb5LV/4ZlLuZihRfpwdA+upo6fclE1dPmWbH5JVD5KHxNjAKbm6/B4TkyelLnPm14jxMmiUty6/MmJm2CRoFjAjTXHCObdl1ekk8VTCYVHgTsSZPDc9D2xqltF0+O0wzSXBsq49FK5CadjHnZbfWMfnccv+Y1mnW/spKkGE+4PdLIBHBARwFZ/7/EoKIV9Vii87iHMMCzZv3Lgw66068VUuGBcL5Xa9M7LgOLdEeh45TN+NfBqQk20LC4msh0jOcBMOHTea59Bt4qVjiWgSkEAfkTtXPBE3K8WR4FMuBePqMzgA== 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=1g4F6CeiyvB57piHPn0C75VO4i6YT0F6yBYdx7YG40g=; b=m43tvwi4AW+AaS9opgyjnGyW4R4QAULJCZxmwYC4X3JezYs6dASqNFm5KIeezjoj8r8EM8MxuE/ZXgyWTw/HyACd8WikDlF/3GVcJexySpkB9UMnpTH3Dwgl+zDGEsP8r+GczRBMW/NTm/vUZqbhHilAXhqEw/WTT71ucvSDWh+Y09umnM3W+P/Uzz8t7ysvezoAfzchNgZUbH4e0Kh2Dxym2SBGXLk4qmvdqXducAT1D/fGn0XWl1RQoE2e0b50bDTGrDRjIqUY0U9A9ME4FZxpd/mKAq+6tXqqtOGx219jeMjgiFUHtxY9pLcCc4L2Fm9lcl40foFgLAFSUwX/IQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0161.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:174::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Mon, 19 Feb 2024 21:51:02 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 21:50:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Feb 2024 22:52:43 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [x9IATuj9zPkLQdFn8J4BSjQLpBvRep3Bkbl4rqGpxus=] X-ClientProxiedBy: FR3P281CA0114.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240219215246.743238-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0161:EE_ X-MS-Office365-Filtering-Correlation-Id: 68cad602-7636-40a8-e7f1-08dc3194da5e X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnomf9zhpdf2mR/+OogaImHYUJ+962m0XE6fVT7GBfuY+VPrRySaikYIkSAbh4sVTn78bNiNEZIsBa19iBZe99nqY5gvYWEV0pYF5ZPvbDYAmAvCOVECxkkowbN9ZROsJOGXim77eQJYJkHpFCe+o7zwOGXk1zu288e2zxIWQOrYwmoFvlFAQlbCxt/9DqE4X23sjJlxtAt6+nI6O8w8miIiKOrDXCbK4KJl4s2u5xNB5IKuBD4knUohqgIxSIA5kKOEhAyrQrXkLZD9WYxsiSTGkf/asHyeRQ/G7LaCHl9zQXPIVXkHzEEBir4VULrHlCMeCYmbpeI0lP/BMw22C9GmNcV9f4XAn0NzNvAGpRggGvtdm9KY+aKOSQE6YZNrJiEF9AGlH5vtDmrNOgWiToQJmm6XACi9olLrS68jAgjGdvQhVdJdY7VbSGpOr2pqpwKeJppeKw0mVVk2vCz3R2eTtxuGCRaHLRMDUm4Beg9DDUYtgEQVndwfdMVaELciepHogUtw7N1aTQC5LZfYV3n8yaH0Tsn5khlCpENYrS1BzZ3oxNudXSpm6771tZ/b6iw8ARdJRWZUTkFcd9dNj1QgFpmiZMnit7imUEp4eesyDKZm5yVf6egHpZBLfyclsPE9StHFfqpHIcitztMXP8pQJgKFCmbHCZwzcLpaNpRGj7UHwALFm7nFy3LcnCZhXJvn7Tg/F6IzCninKdRaNYogal27fmGedsHiBdv+plqYKpwlt3lLm/W5fYhsd+Ce5t8= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4mPL3SbAHV6gKaO1lRutQ7nGKY0MySeWYyE8P4WVmRsa1iJUt8EkOB6WX0jULTWdxnE1YBgE4LWHryMDp6YHQLeG0OJOPHXGmG7F/p7cBNXPju0ysPzmjQz+sCqWNRknw1uITX9dCB0l447OnTzrqKMmDLREklnPb4aXFPiwIiDoCbIDyQFg4GLISvSEle68q+pi51wrKcMwCfSwXBA4ct1VLAr4B94J9w6B38quZesuTePmyZHW6FuPPTTP+XuFMI0RJv6sQEwd2F2y8equdnW/2aSzpbKCnsG0iEOcAxbv9qdgYjTtHDgKUjNg/BUITdrNsCIbcLtybSG4Sjm5HlmiBKwVS1v3GU43IfbdmpkcCE1OfV6pYfrTmQt2ywHtSjdE2dOCBxYGVM8CeL9aoOzDXJyrxvPXy+OxWc5YIx3K/SJquNvdwfB7xnC+GH7gXVO40kZ7J/PR+HngW60PXlIBu9sjtTb0u/hj66HtWnpT2N85MLe3KDdClmluomPKyFjjIZIxBPvfOR7xI1zc8s4tvlNSWWPXnlVf1o7FGcEJxrcMMVhxKbx08U6qktM/Seml5mFN4RCNN2cyEL/2mrIHj1HpzneVyb/dxm2hoxHxwSCB+byQG96WdCS6pS95 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ID5PQXjd4ZZsRf7iOISUnTQNaP5kYlCyX6egBf5GzNfK2b3IGP136enbbfwY+vgJTUFOYTPUYXAq8y9D+YY7AQ/ySA76B3OqW0xhg0ohC+F7BfzHsWKyyzJW5xoFeJ+31Wh2qdNj9jUIQgLB3JlOq4txmwPcH+PMXUlTDoC5k3mSEL4log6LPf8H65UKyGtC09QI3LX5s29tHEftYFtGAuUF+3DvU1XTh23rNOMy5buvFlkSOxmzVSCQSowDza+B4Mdj+/zpKu28u+W3nqmfbStLC3hJblJZRVFhU1eo84NOS6zuEtNxfvJfock8LIToKpY0WzKGGwiY7rCIcSEJZy/3KPFO6k5tSgpNEffA2P82XbLowmsyw2WCq8d6CUuqLPQ1KGFjkxqjdz9oHTbMx7JbnWUxLBn1Hds6zSQjgUbRW02gY17wiZsK5QoXWrZZKj9sJ8nNyxzV76rMg9CoghDwKc+qq/XvWoYFsDtZdxTBF6fIWTR+xCh2DdBvO9nDBF+zOl+Xd/Kx7b7fRLQYH3fI+N3ZxPiJwAq8s7OnucxiISeu5C3y5Y58I6K8i0bczblpOOgcBcTMB4QozzewqXUxFwCmmw1Bd7XWOmh0w0be1kyw5Pl0qmq/u3YfdqQUahdq4i7vumsKsXQM9WvRUxqCh46qveh6PK+X1K4S38RePlJI0wUbnOB59UC8qcRlX2PYMPrhBnsOaOmIHlpd38cDc62cT+KWu/NsAKiQNBAtr0Q9Zx9J7gyXCPlYgNUCVenfx3olzxxAu1/YvAqNnUk5XtxBtAQCeSFuWwkPsw+z4IzlI6piDrRtfaSQ5jG/JeiB9CDDWCvrEHXPg7czk1ix57V42CS5iBCOq9apBPEneIkIqQOSidBe2xNMS26GLwECUEficbLGdlEywyVcW30AI581cJw/2uOwglEw5QZg7bACAxJKRofcdstXt3pOAr0F6AS5Ma/WuD+6FNo41/efa7SV4v9EkskVgMdfHyG07CkSn89r7XfIhz2x1GpfUiOFQhypW5CT/SSwBfNRpvFG4sP4sQwwqTi1S52kvGfDioVgu+EP8hEFnG/4OvYNq5X+kaWt71HuKrJM7wv37YE0vZv+uhGp/lUNbStp/6jHLwO402kdqgcOdIpjwtE9ET0iAsZMYzZ57RHkTRz3tg+o+kktlTt+7+7jobcmCcxb30JC0K9kJwkopfK0zXCdkeUXPZvayXM+ylK95Ao9FgOvY3DZFfmSlU+YXJnPt1wmZCSdzrnRxIBUoxmfJRk7neg8d+NB/SLH/aRrS2KGhg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68cad602-7636-40a8-e7f1-08dc3194da5e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 21:50:56.9853 (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: PR3P250MB0161 Subject: [FFmpeg-devel] [PATCH 2/5] avformat/iamf_writer: Remove nonsense check 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: KD0K715BikJe Checking whether a pointer to an element of an array is NULL makes no sense, as the pointer addition involved in getting the address would be undefined behaviour already if the array were NULL. In this case the array allocation has already been checked a few lines before. Fixes Coverity issue #1559548. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf_writer.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index 897b06310f..e0c47b5e9d 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -251,8 +251,6 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void int nb_channels = iamf_audio_element->layers[i]->ch_layout.nb_channels; IAMFLayer *layer = &audio_element->layers[i]; - if (!layer) - return AVERROR(ENOMEM); memset(layer, 0, sizeof(*layer)); if (i) From patchwork Mon Feb 19 21:52:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46373 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1513281pzb; Mon, 19 Feb 2024 13:51:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXgPJiHquyY29nRM10Yl6Drjjb5fbSsWYxxrqmp7vDN/Yoq5hSnv1MiFQ0JbLr3Nbng3fDN6jVpc6GN1B48cM0813VC8bNNxfPUzg== X-Google-Smtp-Source: AGHT+IHlvMWzxL8Xahae2cvTmG6ym9iLrvT/sdPvmEpO8UMzb1NLYYF7uKOeuEhw/1RDbcmj653q X-Received: by 2002:aa7:d98e:0:b0:564:1ecc:ffb1 with SMTP id u14-20020aa7d98e000000b005641eccffb1mr4545949eds.39.1708379481616; Mon, 19 Feb 2024 13:51:21 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l26-20020a056402029a00b005642258f88fsi2426850edv.454.2024.02.19.13.51.21; Mon, 19 Feb 2024 13:51:21 -0800 (PST) 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=D8jyREkx; 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 1ECB368D419; Mon, 19 Feb 2024 23:51:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2076.outbound.protection.outlook.com [40.92.91.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FFCD68D400 for ; Mon, 19 Feb 2024 23:51:09 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LPf/gHTpAe+JmwU8nb+SOXKz6cC7WUQuCsN+vXziSkTciOmhOihJ8so561kr463aL9fjhMbr9de07o3RCrKGBE03ufjSVnEIolZrw0zAIH6BOeYgJ35UJqDwnNwX49zfHd+TDGNwdJpmiUbXh4VC0lTDyNRpv6wtSG5ZMdNOa9jtbbV7TQ68J49wNbMXeeKXGKYJf8qi7+r4hnIzL0+Apt7IJ+gDFBX/d3gwil13RQPWi49L2nvLAwfmLq0gd4lcSM4Ut4Cx2q8gVbHNXhYGfk68P8SDy9ckZtIc2QeCWPIx8AcHunop9b8NMtK5sVRku7gHikWE/WRnF+aSozyzQw== 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=+SVMV7dgz1uWhV7NQcNfJuysaIW6qNgXkeeSdi+6r6g=; b=UYgxL3FhWg4UFqcroVde3SB/PBdl87/R3jRZRP6pNRI5VHf6AlN00Pqb/deJtCfSIhfehA2GPQiHcNut9+xRbCcLNO6UGEkYhpTzRzm1Z//pqLc5d6KY/6AsUUMo0y06yJ9sj5R3JipPlcbIX+x6CPMSEZHknftp2SxDvLx9ZN+iY1hziMT3PBveoWLfU2bmOg5zLI3bws+OFk35bW44nTZxIIFTYAAeaDqe2ppIcm/jAHs+aIr4HIJkof1395lBZcSBZX4vXOB0qlEP2ePZWdt7sNS26SGHwBHrodnaEiW/Ry9eqvLWt1Wl/bibqwNbjLaoH05Uj7nGY3wr/PugYw== 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=+SVMV7dgz1uWhV7NQcNfJuysaIW6qNgXkeeSdi+6r6g=; b=D8jyREkxfpE/xuQ+amCnuWU+T/n7uftcFjTlliRsDIEOtfsdB/6N/7GIh+p8HJcYm9sQb5awmP44mWyJXbKIMeOTg1RfHG7jajuLHazUnlUpSLVsuokdzgg/WxvGTeJxx1xNPu1jeprwMyXXUykQuoJiHSm2jPH/zY3dpYKeuBpJHDTmds5llbwgMS+LomrycJpp9FTEJrn5at25ZEd8E1pih+iG4+GDvAF0jsGZ3rBd3A1nOC8SekGSb3NsxVqU+M9zliRwd5uWhcJaZ9+gZgVmTAWqUhoh9V630DiVTyjizvZfmRLVUa/uJCnddL1SNV3ClkXKE+J05qsiI0Hbaw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0161.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:174::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Mon, 19 Feb 2024 21:51:03 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 21:51:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Feb 2024 22:52:44 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [CvW8iOwPILyztHKYDqgIiatN6dlXKfgOVgjqFTK2EU8=] X-ClientProxiedBy: FR3P281CA0114.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240219215246.743238-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0161:EE_ X-MS-Office365-Filtering-Correlation-Id: 80a5ed0f-7c46-43be-dcee-08dc3194dc7d X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnomf9zhpdf2mR/+OogaImHYtvAJEEs1ECo0WbL9P/iLfrIyXZ9CB0JvvYb27E+pFyfv4vbtZLKowpwQ+IF1GSD5WrRGAvhDbM9GGEkmj8J+q5aMtF24FNl8JG6azIcmWdY0DNz3SdtzhfGGVkBN371+li4KTBo0khtYevKe4/fUEnA4uZe63N79bTqo4lmsjjA5pnC7riBFA2BrW4+DLRVhoSJB1MfgeLXFG2/5+h+JEXk/4zbixbqACLzYjCSWuU+TYg6qInziaEfScm7EzxmSSTQYFculnu6DwKN6ix7IJ6CZDD/uRsZHXrXM/rjAtuxX64HpSZiFrcJxDFfcV3X0n+fKXB53mLHYGUHR/YqqL1F5k1KKbNWeXHQ+EHV0H+aIimjH3dnthz+husEnq97meZy9g8L2Xhlu2ftOKreOTopCp7RVkehAtJ2tlsDGppKWBqAUWy/sWyALT2MWuQBeg4zZnAVAzbQvn7vjGljaQDNA8Pu7ffdl+RaFQDb4km8HOUBWzaeAsdbqV4ICsYSOU9YCpp/kqKwXwuPHWvyEV34+VapcXFeONIQi6Ybp0GH3Rb27LbTBHk5Xm3jk3CY/B/AWr205eGQYgTKZbs7pdmeLuNZz0OBvrsvmAIVcIwTVxE2wadLnxD0u0IkbiTN0PdjDGNpm86zRptIKvRi500hSTL5LsIe7pFebrKTqfaLM1sdwbAAER5BrhMM5dStXKjNXHAdKV2IkRJKqLQY0Wgk2dUBVhURkWWyJzMFao/k= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: psOVAVLewur2yLlaRXfOHyjW66vIGT/f8iniuweA5rN4W5VPDyVbsWeY+HCxCN48HiET18xOcVLueeKGfobbnJAk8g9u07lX2Kv1fLhno+LSDxtNEbZzyXPzeU1sQhUfSgksvuSyMnlZMBWhiczX76OW5KW3mtyBFT0/7OrCql975gCVMFFm5rayaAbggBM4KCzQbauuVVC6oyj4JASmQwmb93EzwMWIPSyjfL60jbeaPcqf70e6DQrhBQBZCYuvoaQ0Y0Qsx/YwEUP0pALDxWdMnlSMaJ6HWcVv1fCr0q+Mzmfnpxu1Qp6c2rjgmFmYiTqHDNoiTZKRAk86wHtFUcmC2mXjJQAeyb3wjM0rQ6cLo3yeO8shh9cVL/Tsbt+Yp8pxhIRlqqSDukk4yvIs78j+bppH0ktoQ7SUdaYp4paGm5neboxlgCL83yTIQbLIL1JpWcO6uhzKqyWoEXXhNvEsgh2u7rRooYFflDPAkxjcgTbF4QQ87lmR7CoeszW8b451G11O25tuMoxYoGWn/Ql7LyOZxnWXxkDYDkb015OzCgLXGigsWGvY2YC/8oGyUbe5OOZTABY2O8wJ4T+cIDTlaL8AzTwsUenAuwOcCnRGBsmNVOv0o09VjuUB+0/4 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zyVqstxIyD+Ly7OKa4IAYhgvfjZ0aAMtbeV6ywJ6oqED3Q+CMvlHBrm96z7RJEs7XsiOuOA7bJ8HD30qe78iaS2xQA/4GB9Lp59hQbZ2Wes1mzeSVhHfbv/wnldr+rgS0NBLuzlgWqGdeFNqZWzfx22XpyCmoTN8tKBFntv9+15Px0e5PjngZkL/3U2CNPc6QrhgBAuzzQCu8GiNY9gYxRhakl0/aUWdf1g1gfEcmBU6XreD2+XhHDkPJk7YSiJsZnNOh+BAyF43JMg7TMyxsqpgJC2M2xZNiQ1sFVjYxrnQu0JixTkTIA7KtSPLhjR2AJJvJxRLoAkPtfhOlqgYwYgPky3quvYmySsJtBMlSi6dW8SsEO9X7wlJqIEfDbWhiiY/osHT1fbsezSp2ootjWKbj2TICaeZA4ixSbJxaRmCgYkxqrnbf6jHJcPRPIflciarx0fw6OAsqnFbCAnU+uHp4993fKq5xRNdeCxS6pRlCFbB8MJZyjPKS3kDPGQ/urHWvlBuSBsvza5Q430ZjDbFDe3yxbZPJCQcX/Hft+HM3F/SEtX2WR8QIvzXVfmr12eQviv3j2s6sC27lxzohOCuvzq2G/rBjb3BJusiaWqurhhZ5MQk9Ly7viqqmm8pNURaLYxoxpfOLnN2OSDrZdTeP/q44HNRlvTd0/Ha6AfUAB7OWKJXjT0YNrFv9/1+5TIkUwaADUD2QMVtdZdoZHjO3rpEA80w6Pv7AY0XJiPEDEHvFVfFGOZkTPc+1lAJBcV+RVcIcx0I/CmFmzFOOyg/ZrdJWOypbQIe3Iybx8o1eBvf+tMNW4GrmiNrg1mF0bh/s4zH5/yEnnAGIkV9DwzuJdeUNmHxDu8/eoxKlAoaauYVu1vVJBtQgxWs9dRE0Ibxay2g3IdSByoDmV9AaAzZMTbKekPxQ2FA3nQLii/zXoMaDx2o2LU3jkvrnNVBYF6KbDXqRRjUkBWuGBx+kHMW9Fo6Qv8VTCY73LooA5asxlikphW0q8/vHOC+M+PmPmWnlLMtJz9Jwji/a540AJJ3AI2YicZMVN9HgVoAhRjofUPTHs+qARy8Aw4KHnjrVWWDfj3L16f7JhZt+5uZMU68uAbxtmEB+5s862vr+TO8Iz8eoQBL2T9/H+YN3fWczHTJGAMfMgLyaSoZjCYj80zWrYz7uHKFcIDGtM9Ld+iYvy9AYsiozjt7IAuPOWvyWVpHSToxz6xMO6yobKqu0XtrFKn2if9RcF//MEEEDtesiEF1xYfXFT3NtuEHkpwr81APyW4fc7dZ30qJZXEiMA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80a5ed0f-7c46-43be-dcee-08dc3194dc7d X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 21:51:00.5989 (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: PR3P250MB0161 Subject: [FFmpeg-devel] [PATCH 3/5] avformat/iamf_writer: Don't memset twice 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: rvJubBlzHl2t This has been allocated via av_calloc() a few lines above. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf_writer.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index e0c47b5e9d..9a665dc002 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -251,7 +251,6 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void int nb_channels = iamf_audio_element->layers[i]->ch_layout.nb_channels; IAMFLayer *layer = &audio_element->layers[i]; - memset(layer, 0, sizeof(*layer)); if (i) nb_channels -= iamf_audio_element->layers[i - 1]->ch_layout.nb_channels; From patchwork Mon Feb 19 21:52:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46374 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1513326pzb; Mon, 19 Feb 2024 13:51:29 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWUDGeaT/UOJpTxflsrKvMUsuokw/0EWU73iu3Cb1d9h4g7kQTawGDs7D68l3HANXWTJgE/Tyed1iiAXPLziC8qu4tzxVgA+o7TcA== X-Google-Smtp-Source: AGHT+IFpo5A//OuePC2JNy/LwKLnSXk6dMkWiFs5SC4KWsswIXZkAqCoCCoU+kre+FV4I5D0eOA5 X-Received: by 2002:a05:6402:1812:b0:564:ab98:35ea with SMTP id g18-20020a056402181200b00564ab9835eamr1128701edy.12.1708379489427; Mon, 19 Feb 2024 13:51:29 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f18-20020a50a6d2000000b00563f106d340si2853071edc.613.2024.02.19.13.51.29; Mon, 19 Feb 2024 13:51:29 -0800 (PST) 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=cM7bb4sZ; 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 51BBA68D416; Mon, 19 Feb 2024 23:51:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2076.outbound.protection.outlook.com [40.92.91.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F54268D415 for ; Mon, 19 Feb 2024 23:51:14 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=meErhbYZTYl1rVAAGP/qGV5EujmhmPLzZKXt8w/zyurGz1fIEhzf6euFm6y50jRx7rtnHAvqujq0qO2XxKqAH5NtM1WG0MRFrz78uNz+F1cOXJsWaX5V/lE4sRgPwIxI3y6ZWA8OVZUJs2SjMJ8Er/pJoivG19J1iZ7OrBix2s1KOkak8lTNTpbKqwXZ7a+rXjY/iZMRqfZ3Sk+V92tTSOgz/KZ+hL/drlBi1p4Zv4Nllvn2vvWdAq6uQ5c3HIOQT4DV4xx+Q+jXOIr31rEq0/wI/WDFzGep+iQcivKM/EK0MCFgUeEtP/Zse/9TbBmX39rRo/pBwEAZA68MH4n6Qw== 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=nTT3/9PI7ScHhDbftjxznEwp/zYDKfdF1QdyLzr6LCs=; b=nAUuOc5fADodHvjhKXP50KSM1D9ow9QG360x6SCoDz18HCiscVhq7+wdO4eKngUdfBgS4TX2WRvMpMY9+xuzj7qbKO00egKB7ayhiudWoWSiFR+c35FsHtdANvD5drnjEIu/V2xuZIVFGc7DGTrJHLeIps4MdmBpi+JT1S6Z73tz7l6O+o1DnJ5opB0OCL6JebjXehRxSOLta0FLKTVhaIjjrqckK0guMYPsCwjVF6U86mZ42jzsTRCLqtDnXRJaTduNCzJ1igIrJf5zwVoSI04nipWTipRXwQwnN+4uGcC/uc8zj6qz+HIA5VzWlu1dzQ7OHIx57zFYN50CiHcTWw== 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=nTT3/9PI7ScHhDbftjxznEwp/zYDKfdF1QdyLzr6LCs=; b=cM7bb4sZdxI5BywI7C35lZm8zL36Zy1+Finc2AVqdsQN9VUTT79EphyqeDv6gsw6rA9abcwXlnDDiXR3mtU1GAXsHZKpo5jkmqaYvpIQ4GbGQ6N2d0YzrcbDIP7zrpRkSh1WkcA8gGjqAZRSRfXv17BI6yUzMq74LQSRVCd3eBiKhaXR+ID6LTdPVF9IoKjytD1mqS7RBgkGDfRVCRqLx5XR6GbLNtYn3z77lQbOOG0EfQ8mSGVaOsnYUFQm6INswDaaq5XmS/chAVTu9UBpS6su98V+qcLvmVTqx8+c9NjdF//I+cveOsQf+t3VQUP4csihVZgNosDNUiHogmpuPA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0161.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:174::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Mon, 19 Feb 2024 21:51:12 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 21:51:12 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Feb 2024 22:52:45 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [of3g/vPs+gVh84NbLiPiWf3NsnUXHrgbgFQ96SqFxAA=] X-ClientProxiedBy: FR3P281CA0114.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240219215246.743238-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0161:EE_ X-MS-Office365-Filtering-Correlation-Id: b9787a62-6f99-4118-5ad0-08dc3194e37e X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnomf9zhpdf2mR/+OogaImHY6RSlXA5cVwA/rEK8Gl8pkMCS+xqDFLYE2UPwyiZndiV4/I0YTJAMf6zv6cOFGnxKfI0PaEGDdWcpLQX8rV3XWK+iCSy5232W7DXG3i0RPg4mtC4XWulDKlRBdxApoovDHDM3LdVIsn6imX+QvSUy3e6B4B41NEt3vDS4k3gKYgcMW4La1YzvemwmSVbUSkZ9TTV6JkEqU1IuQAwI7D9Zg9Q7mDw+9ZHPRLO8gKYc5/fM4xjwGcsPVRffP+G0+oyRkYgnsE415Vf19b3Aywgq4NVSwAqoNLJU7aMThYvStfBRMQP67TIgpQIuBlwxOW+qNvNI0JLyPhtHQye/Q3SnM01oPnrr9KmqByoOrxnp1NcCNITvErGySei5B23ZZLOVBKWvvl6GQ9KgpTsem6VX09fT4whvYlAtceqQd08MyaDCPDgmPr86j1ev7CshRrmApZEpGs7r+hETPI2HgblB/ebBQvghkQRd2z7ScrG4fTfqXM1h4fojm0Nf0jPb82KEAeMGzpKcIg7KAvglWh/6DnVWouOLcQhsabkBG0sNM4xcTkjFoXyxFfdFC0D7CLX9Owpi7s2k95prZMeliND0adjkPjdZWJx44Uul8m3A9eKJjj+z84HOSWyy69HDndvWiFAjTgTx7BiLPYOkSiPI27USXQATzKfjJyHtIlAXY0M1ZQdCR7Y1goly9T3MizrT7NxAt6yrENRf5Y1wpvPW2kuQ62k9B+U0hXrwlhlgiho= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xYS+iw/AUTR0UnIasbW7P/rJPYuC8po04a0EKtqsU58cvKSlksyqvJRMbGTTbsGeJFzaiqbHud1MkRunZcXnLmPgHIUC+KRVIg7FlUkB6gEtciOiAuSUfuHIAhq03QNYugnIG++WxWvIcYa8eazN5HQ4I1WT0pQqBSMyh6h/PQzkfw/oaxcaiFYlTiHP7ZnJv0la56cqUBvIv9nZwA9BxgjBT8yOz84aFQ8YyWxTDCNB1eo3jlQ0aihgxGgwtUacD/xKe6jOHP7NbsjE1YsJF/b4kYi3QfrTiHdCD9zKOIfxusDMQQPTiPcphw4xcFCPDNSNEO/+n6SzFSQUBjONJhZg1SkEkj8/HcmsOpew7ICKWcgzzNXh9PSTyG6oV9bYc8qJuqp5ROBy9qIHCGlU0E7Y/vs4WqZ2mzW7Bt8F1GLnx4OIcviSs4jy9oi2Zd9UlMZm+2ltIsmPmt07pzdcCE7IClZZ07Y3Wuyqh/78qWDdMNQvUuFvFSFcwn+MgK07rOoWOcI61FmWeuxu7A4rb3LvVrCG7fKU4iEbLU3553Gev4lWzisA4tM3/etUVt6kqA89vmaydFpIVY6rYK+IOn+i6OL6TwspFl+04dlzrqBhKc/4HEWNAXHVLjkAz/+G X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EmP4gkzDfb8b9d+eBVQoIUutZ/20tTl5d3rVazNPT5ImXbXz5aTPOP4nTi5rd59GXuEtZpG/BLWZhFszaJLP1doYLZUtLJsMoTegAkAOFax7NBPL19gkREM0t09nDsu6edXxQ75iGDSPJk1XbU1AxlBN+IH/pKiBelCaDncJcAG7GlmwHe/VdidvTkBEJbwtowrkAQV3viSMFA9l5sQAD+86UIOy2VU54u9Fo3dcbwnC9Z91yJOG7R/n5rsQGLc0WKK/yOCY/62VpjTRMAvPmKb0kdURnz28t55UqBpcPVETKDNuMm7mnldLHXphYop72C5svlatc5Ez35HvIcSL9i96nYsquHH/HQggqiQkirF+0HMDbVqw+yEZy/5YCdIZjozSu2BhUguiGNlRzapKYGHDx4tHxauoLy9HNy9IG+9HQE4m44kTKK/wf9T+rp3yLUoUrd09kQxUMybZGt27Q9BaUCK1sLcSjsqtD3x38SiPx9QbiCUCC4amRbYiynu89jiyjzZsUpykyaT9RkR4f8mK9e0Vv+ybRn1m1WNVrgteks7u7HsygqcLplUTM3XcrXt7t7zipddwREIpNMF9GfCPICVYgqIvHg3iouuc7dqymtGj+Qoo5ujVX2KXrItqFTfpe7N9nVfK6jHbdi51h6xrYMjlWux6vkNNAdJUSPk9yw+MKweg+n1z9DnDm2DjmSyWrZHSvZ6Vha69JY/zC4azz+YujYpqhN1F8oMB9R05TkWutE1DeC6utY3d9XHfM6V4BLsZJ0HaZX4rQ2o7p28eM5fnhPh6lRMrXtpJNNLVIvr1sPfDQmXTP3HOy8M5jYJ50cy5rIm7+/orXyNQ54Lup9yXFDRLQI4lBEZDqRA+4IR/glujgIsgPPTvOeRDWdjTqUWlrcWEMuRPC2fnc7zeSS/Tg5Yopc5gXyR3r09+85RMxdc6D0WVPawhJVOO7XEyKkVAqJNQke/Ohp/mFSluRPduJJ9h5lUiakGfvYKjbhiOyLqm9HJpYsZBQP22W3rUJpingmgzgQWjgwCV6XLFqWREBXSISOBExBiYHWFOsOLZ5y4OzDekAWw3X4EIOzj1DaBGHgXLk2Ns+FsrWtjpfGNi9b4a3Q7Ykg0Kjn1vQHxNr3f78dh1kvuT9j6fC0u2hf+pKtjRHZ8mxUr0/3pE0XR61LdTI713SY50/KLrQUk1AaQxlIcoNHNw8azDTWq2ocYu2XOoT8gXSbhgoI5YveIXIMiEg67QPgcwTa1+KUd3tlOxnITThWNlWsFeO64HurFg20TPYeWMJTtfRg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9787a62-6f99-4118-5ad0-08dc3194e37e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 21:51:12.2847 (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: PR3P250MB0161 Subject: [FFmpeg-devel] [PATCH 4/5] avformat/iamf: Don't mix ownership and non-ownership pointers 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: HWAtxrjrLyYr IAMFAudioElement and IAMFMixPresentation currently contain pointers to independently allocated objects that are sometimes owned by said structures and sometimes not. More precisely, upon success the demuxer transfers ownership of these other objects newly created AVStreamGroups, but it keeps its pointers. iamf_read_close() therefore always resets these pointers (because the cleanup code always treats them as ownership pointers). This leads to memory leaks in case iamf_read_header() without having attached all of these objects to stream groups. The muxer has a similar issue: It also clears these pointers (pointing to objects owned by stream groups created by the user) in its deinit function. This commit fixes this memleak by explicitly adding non-ownership pointers; this also allows to remove the code to reset the ownership pointers. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf.h | 10 ++++++++++ libavformat/iamf_parse.c | 2 ++ libavformat/iamf_writer.c | 16 ++++++++-------- libavformat/iamfdec.c | 22 ++++++++-------------- libavformat/iamfenc.c | 12 +----------- 5 files changed, 29 insertions(+), 33 deletions(-) diff --git a/libavformat/iamf.h b/libavformat/iamf.h index d88a24c435..0cb0902e86 100644 --- a/libavformat/iamf.h +++ b/libavformat/iamf.h @@ -86,6 +86,11 @@ typedef struct IAMFSubStream { } IAMFSubStream; typedef struct IAMFAudioElement { + const AVIAMFAudioElement *celement; + /** + * element backs celement iff the AVIAMFAudioElement + * is owned by this structure. + */ AVIAMFAudioElement *element; unsigned int audio_element_id; @@ -100,6 +105,11 @@ typedef struct IAMFAudioElement { } IAMFAudioElement; typedef struct IAMFMixPresentation { + const AVIAMFMixPresentation *cmix; + /** + * mix backs cmix iff the AVIAMFMixPresentation + * is owned by this structure. + */ AVIAMFMixPresentation *mix; unsigned int mix_presentation_id; diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c index a6443f4f3d..50dfd1a6c2 100644 --- a/libavformat/iamf_parse.c +++ b/libavformat/iamf_parse.c @@ -651,6 +651,7 @@ static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len) ret = AVERROR(ENOMEM); goto fail; } + audio_element->celement = element; element->audio_element_type = audio_element_type; @@ -809,6 +810,7 @@ static int mix_presentation_obu(void *s, IAMFContext *c, AVIOContext *pb, int le ret = AVERROR(ENOMEM); goto fail; } + mix_presentation->cmix = mix; mix_presentation->count_label = ffio_read_leb(pbc); mix_presentation->language_label = av_calloc(mix_presentation->count_label, diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index 9a665dc002..e8a88b44c3 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -234,7 +234,7 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void if (!audio_element) return AVERROR(ENOMEM); - audio_element->element = stg->params.iamf_audio_element; + audio_element->celement = stg->params.iamf_audio_element; audio_element->audio_element_id = stg->id; audio_element->codec_config_id = ret; @@ -329,11 +329,11 @@ int ff_iamf_add_mix_presentation(IAMFContext *iamf, const AVStreamGroup *stg, vo if (!mix_presentation) return AVERROR(ENOMEM); - mix_presentation->mix = stg->params.iamf_mix_presentation; + mix_presentation->cmix = stg->params.iamf_mix_presentation; mix_presentation->mix_presentation_id = stg->id; - for (int i = 0; i < mix_presentation->mix->nb_submixes; i++) { - const AVIAMFSubmix *submix = mix_presentation->mix->submixes[i]; + for (int i = 0; i < mix_presentation->cmix->nb_submixes; i++) { + const AVIAMFSubmix *submix = mix_presentation->cmix->submixes[i]; AVIAMFParamDefinition *param = submix->output_mix_config; IAMFParamDefinition *param_definition; @@ -465,7 +465,7 @@ static inline int rescale_rational(AVRational q, int b) static int scalable_channel_layout_config(const IAMFAudioElement *audio_element, AVIOContext *dyn_bc) { - const AVIAMFAudioElement *element = audio_element->element; + const AVIAMFAudioElement *element = audio_element->celement; uint8_t header[MAX_IAMF_OBU_HEADER_SIZE]; PutBitContext pb; @@ -503,7 +503,7 @@ static int scalable_channel_layout_config(const IAMFAudioElement *audio_element, static int ambisonics_config(const IAMFAudioElement *audio_element, AVIOContext *dyn_bc) { - const AVIAMFAudioElement *element = audio_element->element; + const AVIAMFAudioElement *element = audio_element->celement; AVIAMFLayer *layer = element->layers[0]; ffio_write_leb(dyn_bc, 0); // ambisonics_mode @@ -565,7 +565,7 @@ static int iamf_write_audio_element(const IAMFContext *iamf, const IAMFAudioElement *audio_element, AVIOContext *pb, void *log_ctx) { - const AVIAMFAudioElement *element = audio_element->element; + const AVIAMFAudioElement *element = audio_element->celement; const IAMFCodecConfig *codec_config = iamf->codec_configs[audio_element->codec_config_id]; uint8_t header[MAX_IAMF_OBU_HEADER_SIZE]; AVIOContext *dyn_bc; @@ -669,7 +669,7 @@ static int iamf_write_mixing_presentation(const IAMFContext *iamf, AVIOContext *pb, void *log_ctx) { uint8_t header[MAX_IAMF_OBU_HEADER_SIZE]; - const AVIAMFMixPresentation *mix = mix_presentation->mix; + const AVIAMFMixPresentation *mix = mix_presentation->cmix; const AVDictionaryEntry *tag = NULL; PutBitContext pbc; AVIOContext *dyn_bc; diff --git a/libavformat/iamfdec.c b/libavformat/iamfdec.c index 99622f697b..9b3f4c7429 100644 --- a/libavformat/iamfdec.c +++ b/libavformat/iamfdec.c @@ -232,7 +232,7 @@ static int parameter_block_obu(AVFormatContext *s, int len) case AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN: { AVIAMFReconGain *recon = subblock; const IAMFAudioElement *audio_element = param_definition->audio_element; - const AVIAMFAudioElement *element = audio_element->element; + const AVIAMFAudioElement *element = audio_element->celement; av_assert0(audio_element && element); for (int i = 0; i < element->nb_layers; i++) { @@ -403,7 +403,9 @@ static int iamf_read_header(AVFormatContext *s) av_iamf_audio_element_free(&stg->params.iamf_audio_element); stg->id = audio_element->audio_element_id; + /* Transfer ownership */ stg->params.iamf_audio_element = audio_element->element; + audio_element->element = NULL; for (int j = 0; j < audio_element->nb_substreams; j++) { IAMFSubStream *substream = &audio_element->substreams[j]; @@ -428,20 +430,22 @@ static int iamf_read_header(AVFormatContext *s) for (int i = 0; i < iamf->nb_mix_presentations; i++) { IAMFMixPresentation *mix_presentation = iamf->mix_presentations[i]; AVStreamGroup *stg = avformat_stream_group_create(s, AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION, NULL); - const AVIAMFMixPresentation *mix = mix_presentation->mix; + const AVIAMFMixPresentation *mix = mix_presentation->cmix; if (!stg) return AVERROR(ENOMEM); av_iamf_mix_presentation_free(&stg->params.iamf_mix_presentation); stg->id = mix_presentation->mix_presentation_id; + /* Transfer ownership */ stg->params.iamf_mix_presentation = mix_presentation->mix; + mix_presentation->mix = NULL; for (int j = 0; j < mix->nb_submixes; j++) { - AVIAMFSubmix *sub_mix = mix->submixes[j]; + const AVIAMFSubmix *sub_mix = mix->submixes[j]; for (int k = 0; k < sub_mix->nb_elements; k++) { - AVIAMFSubmixElement *submix_element = sub_mix->elements[k]; + const AVIAMFSubmixElement *submix_element = sub_mix->elements[k]; AVStreamGroup *audio_element = NULL; for (int l = 0; l < s->nb_stream_groups; l++) @@ -467,16 +471,6 @@ static int iamf_read_header(AVFormatContext *s) static int iamf_read_close(AVFormatContext *s) { IAMFDemuxContext *const c = s->priv_data; - IAMFContext *const iamf = &c->iamf; - - for (int i = 0; i < iamf->nb_audio_elements; i++) { - IAMFAudioElement *audio_element = iamf->audio_elements[i]; - audio_element->element = NULL; - } - for (int i = 0; i < iamf->nb_mix_presentations; i++) { - IAMFMixPresentation *mix_presentation = iamf->mix_presentations[i]; - mix_presentation->mix = NULL; - } ff_iamf_uninit_context(&c->iamf); diff --git a/libavformat/iamfenc.c b/libavformat/iamfenc.c index b588a507bb..b5572c79af 100644 --- a/libavformat/iamfenc.c +++ b/libavformat/iamfenc.c @@ -218,7 +218,7 @@ static int write_parameter_block(AVFormatContext *s, const AVIAMFParamDefinition } case AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN: { const AVIAMFReconGain *recon = subblock; - const AVIAMFAudioElement *audio_element = param_definition->audio_element->element; + const AVIAMFAudioElement *audio_element = param_definition->audio_element->celement; if (!param_definition->mode && param->constant_subblock_duration == 0) ffio_write_leb(dyn_bc, recon->subblock_duration); @@ -353,16 +353,6 @@ static void iamf_deinit(AVFormatContext *s) IAMFMuxContext *const c = s->priv_data; IAMFContext *const iamf = &c->iamf; - for (int i = 0; i < iamf->nb_audio_elements; i++) { - IAMFAudioElement *audio_element = iamf->audio_elements[i]; - audio_element->element = NULL; - } - - for (int i = 0; i < iamf->nb_mix_presentations; i++) { - IAMFMixPresentation *mix_presentation = iamf->mix_presentations[i]; - mix_presentation->mix = NULL; - } - ff_iamf_uninit_context(iamf); return; From patchwork Mon Feb 19 21:52:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46375 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1513376pzb; Mon, 19 Feb 2024 13:51:38 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXWSVoy+wfhjCeYC7kAkponGFU/uJcecpjdSOcd925jsQ5lRZinmQ+xY4qWYHiWGns/JvOp6p4aS/9ZYAZDn5XKLUkXfImeAdswjA== X-Google-Smtp-Source: AGHT+IHD67dfU1PuKJmFubQfF/i6c8g/TVVX1udH8XvDWz8hpGquGpuXmTiFRWitZrqyfe8IlTvJ X-Received: by 2002:a17:906:f1cb:b0:a3e:95d7:a9c9 with SMTP id gx11-20020a170906f1cb00b00a3e95d7a9c9mr3128755ejb.10.1708379497694; Mon, 19 Feb 2024 13:51:37 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r5-20020a170906350500b00a3ebe2afcf7si855833eja.955.2024.02.19.13.51.37; Mon, 19 Feb 2024 13:51:37 -0800 (PST) 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=K0i9FPDv; 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 7B33068D407; Mon, 19 Feb 2024 23:51:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2076.outbound.protection.outlook.com [40.92.91.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6C4C068D41C for ; Mon, 19 Feb 2024 23:51:19 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sb44gg18rnkDBg4n+YMr/3S0AeRRAvw45bL/UtQEhCNoRZmNgQCeh5aitOTP1o5Dzyc0ysv2mRTKMv8H1eLlFROaIhFh84Sd533INgIvgnR3JbhR8627pR8p3HP+L11DUv2lZgeLjTJd8wTcTMNk24k/AwzXhXKiOZUc8RXrUUMATCQHLL1MBZp4kW2Acp/JhHE3XC/PsVKz+MaRJ5psp6cuzb4ZTZp8sfNTUQXFkEMV7hX6/xa517L5KDnIjN/kpkJoMFnYozsSdOenBY6/iuvbW5frN297u9uwhY6g3Ues2CyL4R9hNd8zdSjBBjuyAOsS/fltdW4wK4E8Dp2ShA== 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=ZNgsah0as+M6QwL7JyISJOfjaJ3g97r9JRrDwGIWgf8=; b=hTWeCwkzSr6rBflm09gYIgiMS6hkA6hywGaMnNjIPkKS7SL7yl+iF1Ynvfe2hDNyHD0f/ud3yaOvE/nR567BTWbZAZe1ae+py4j3mCg7RgcJBeKVaQv0GZs1khJz7gK86FlUx2N6Kix0UfkSeqNxDtou0ZhCIsOOeF4L+m138h1dh8VnQfdvBWfxi6m9f1fjejZi3DRspaarlBGt1fHkr5nS7RFydiD1bZ89/Tk9Z/73SwrdnUK0slo4Y8OjRc24FkeFjM8fSw1xJPgCWDOd8LluPH+7aKuUs8fhaiiZ+wt9PtId6RkeKUdoRBhOtZ++uiniGWHlIHS4Yu79f+M8FA== 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=ZNgsah0as+M6QwL7JyISJOfjaJ3g97r9JRrDwGIWgf8=; b=K0i9FPDvkcR56C6uurRQAnVbpom9gqAFoW91MCoG2oNo7lvDlvGR70hVXIH8l+7oPw8s0P2CESXrdo1k4Nm1QtdmflrQZQ+LKLFiXNaYS5OjI1OrrHYoZEkDPzlM6Tz8zOWal6QQy8ZmgkrbZYhK/CU/UkstijdtGOBRnrK3PxYSjfh8zvReYDjz1olNzv4+vMhf1DdzN6yUvRVERiPssVA4n7kuNzYuzorj5l59fAW6fUdT2bt3d66wcytyRbmQWnEoUJVym8R/+iUgKpE+84uRp6NlW9drpDxEIt3F9lD0IuTfpddoPORwunma9zX+x5o2bnwlHdyDRjTfIOgb9Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0161.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:174::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Mon, 19 Feb 2024 21:51:14 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7292.033; Mon, 19 Feb 2024 21:51:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Feb 2024 22:52:46 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [OcLzIyDRMGnH3472aL1m9huNZSFNxJt0XvcRVo6lJaw=] X-ClientProxiedBy: FR3P281CA0114.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240219215246.743238-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0161:EE_ X-MS-Office365-Filtering-Correlation-Id: 0645b9c0-ba0a-4bcc-7a82-08dc3194e45a X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnomf9zhpdf2mR/+OogaImHY2Gl7FvqYLYjS+C7UXUHcrDieyFejzm+A5apGOj+qtRfX2WWsPTcyd0+XVekQmUVtwjJGMdPMAzwOJL1dsYqz1qCzyXvT91Da9p1T9KpnhIDlNK+H8qwbf/FjIJXQeb0A/UXyoy35pf/hePAUPkh2PCZc3M1lmHIZOhskwHgfpG1gNd2MXqq4HLAg/5gVnvZX3Oa+KLXtXEp48F2kQe0LBzkUwgPJNGpXRi4M/4ITqFOxA4TBb6gEORB/RljSqyp39V0c4Jm35kYwAVHDmOaht0nXp/ZjuAIBd7UEGZShm+SS2OjzsrpwvKrRKz0kjEGFL7eoaJksXWcZnGQ19yKsY9QADM7POaYxMNa9872df2yXp7dGSBNfx1/oe4MNHyOkIC11JdRwFzgczQfR5NpsA4M0iTIUWtjx8T1AD8I5vd1UxhURaRvyYY0I2YgNTipzEc+Mrk9EOMH3QbLesWm1/IM39TRP8O6/J7EA59sqKTCFPpTGxc1Q3xkbJXGkevC0hqiKfBvkIZ2lq1hlZc+yvdyCaNwm8JF4go4iP4y2J3kmbw14tydrR7EQBcGG0ZeDeMRJBYtpHRnP8w+W6XJBEFc4FUg7fYcV+6cT+OrV9b5/7tJrj8jykOyG97HThjPN6E6MorXw0WyLp+6svFF6RjaXeEjr0ehfxC1e8AxXgoHtlXwUefcj1Y8t4AXh1V2MR5xZwT81HUev5vkocEZvwYW0TCOrZkuwMOEJZlvJA+I= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M1X0UZb/suy4Iy1ApjVr50ViHpxZ7/hddX80hhaKxasy7jCXMOluTqxF3zVXWUHJ4FwjjdJ7ojszdN8C6No1nQN1rwzJwi/EEg24ZfQjv67ql6qEs5FMCdmgMU6jA71l21NZ0VR1TOoXSdea4eU+qECAtoXsex9AHU2W0SNo58dljb8QGlAxR9iatKefs36eDIkEYQHj0WOuEn86koGjXQ4Vw7aswyO065NtxAGdbo7OPd/OxPahOIqYsi5csLG2snRj+X8c2RAq5ArWGe3DwJ7iB+ugFMAbQC5bjip3U/FxsVom1dlQiiLgJQXB+3Y/i5xb9mrnG3DdwEQ/RrBiDv5a3oubDqZHmtAx4FSzZ8wpelwm3V3cj6SQPSp5FahyyGvf6dn65QEKQSVBfKSNNrNBFHltXCfVoaNtYCSRYWNd/fhkgaLeMQX7lX92GlbmRg9viYCAvTB+bkISv1Jv1c1p8+K9cj8vU1MlaMIn070SA5FnEoArQj5GvPyvjxLXNUbyO87iLUZurhMr8DaFQClRXUGvuCQjXkDgFQ022mHcLOwRQ0tixmEErjxwpdidn4MnVR7CyG2Yhe4yVAfuEXWzrmzSqJ+hhBe+cI09UUj7MJ5JaJbbVKmk06nsoNRr X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6bc9GR3eIvUH07GJFpOzTRKUKhByahX63BakZZwHPJXi1rdjlfmlBZ8TBnpYPYDepf3pczuxOiWQufB/wdSfxlxNcbbHkW9uYcEYb0Nr+/3C8zMfiMOmp3qauhexgVcryvrfGSioeYftGnkSjV2YCcu1sxrzWUmKlIjf2uIU9gsywu2YNwQ/+6vThDsX+iiMmN0qPoNb+9gKUshX+n6jnY2j5YFwah/vNMMk/IA1Q0jm3OKmcRRsBHmIEuNfHTDqlyNaTGNAwNuy6Tu7z1E/a8r4Ck23OlF6+Y1a3GrJSGEs6ILOKV35cFNnHft4MC9HhTIKHqNMd/v/WhK1I0bhOBugyWjx7vZQ/fQRd+PNE5Wi/gUaQC1vThl6k2n43kfDGXes375IW6Zo4rpPYN2s/i63ns9lUgMpe+2WU1HtU80uQhUXKiax+2RnrseAj5ZVFEv8q5b8ahLOSSUql0zcNF/T2EQR2eCcpG4UGD2pyZSgQvvIcSUc+gtMMSCzyLv88HWMepyAHBTSmFlNQHjGmuMPm4sAmuo6sMhjOZBq+mbbSYJs8asFjDCEBetCppkikEMUMkozQR9eaqKsXxHEv8prkF60okVS423vG1uJ/bKohnOYGK31R6Hw6eGU8JfQglTTNSUjqLJM2lpkT1MdKrMqth6fiR1cHgXDu+hlsnU8BcorX5tXY5qQ+LURZLxVAKjAFVU2YCifV/0xRDe5GUD/LgapmIQbUvlr6MlmQuQ6Bwq6qAT2L3l+2CFhAjLGH9Ggr4D+IXkfQAl9MiIL+l22WK7NSPKyXe1OAmLUuHFXbIDEF8GK1hlLPukQFs5t4gcUwZY3/SNKZTxnHXnobjXIcNpDArH0wO8COqpUVWaXiLD+wYERm9MEs4qaGdrV/CEqO5YShUxC69j+W++j4YCNxM4kFrN6hnOD6jXzRti1gCEvWjbnvExaM3+dJy5vN4VVq3G3EEflTkzIjn7FPKbfzHI46ETWPqDw81rF43xvg/jLS7oaL/wbPBDsHyrvO9F/O4zdnSxNho3t+u9X0CiA6A4XWrFqKn0xm1Mc6Ez7JUurjefiR+ligWBjbrMysAqOspmqWJmdxQnMPie8T3oGaW4uYva+ZFrRZRWl1IZ6lHbED6KZ+xv8hP6CfKZvZvoRfg6hvHuvlWTQqOKoErhNCGkbK0Y5zxaOW1bYqMcNwlcouLCX2S5tK9JgCOfYCfWskqAyV+KctivkiBzAvnOcafcLY5XRv+UqTJyj64Bj26xcyqcd1ZiTSB0N6++nwPTP1B+7dtkPNU8BQmCgZA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0645b9c0-ba0a-4bcc-7a82-08dc3194e45a X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2024 21:51:13.7276 (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: PR3P250MB0161 Subject: [FFmpeg-devel] [PATCH 5/5] avformat/iamf_writer: Fix leaks 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: 6nXNK0pR6YBp Fixes Coverity issues #1559544 and #1559547. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf_writer.c | 42 +++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index e8a88b44c3..f6ebb4aaea 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -240,12 +240,12 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void audio_element->substreams = av_calloc(stg->nb_streams, sizeof(*audio_element->substreams)); if (!audio_element->substreams) - return AVERROR(ENOMEM); + goto fail_enomem; audio_element->nb_substreams = stg->nb_streams; audio_element->layers = av_calloc(iamf_audio_element->nb_layers, sizeof(*audio_element->layers)); if (!audio_element->layers) - return AVERROR(ENOMEM); + goto fail_enomem; for (int i = 0, j = 0; i < iamf_audio_element->nb_layers; i++) { int nb_channels = iamf_audio_element->layers[i]->ch_layout.nb_channels; @@ -266,7 +266,8 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void if (nb_channels) { av_log(log_ctx, AV_LOG_ERROR, "Invalid channel count across substreams in layer %u from stream group %u\n", i, stg->index); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } } @@ -276,13 +277,14 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void if (param->nb_subblocks != 1) { av_log(log_ctx, AV_LOG_ERROR, "nb_subblocks in demixing_info for stream group %u is not 1\n", stg->index); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } if (!param_definition) { param_definition = add_param_definition(iamf, param, audio_element, log_ctx); if (!param_definition) - return AVERROR(ENOMEM); + goto fail_enomem; } } if (iamf_audio_element->recon_gain_info) { @@ -291,29 +293,36 @@ int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void if (param->nb_subblocks != 1) { av_log(log_ctx, AV_LOG_ERROR, "nb_subblocks in recon_gain_info for stream group %u is not 1\n", stg->index); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } if (!param_definition) { param_definition = add_param_definition(iamf, param, audio_element, log_ctx); if (!param_definition) - return AVERROR(ENOMEM); + goto fail_enomem; } } tmp = av_realloc_array(iamf->audio_elements, iamf->nb_audio_elements + 1, sizeof(*iamf->audio_elements)); if (!tmp) - return AVERROR(ENOMEM); + goto fail_enomem; iamf->audio_elements = tmp; iamf->audio_elements[iamf->nb_audio_elements++] = audio_element; return 0; +fail_enomem: + ret = AVERROR(ENOMEM); +fail: + ff_iamf_free_audio_element(&audio_element); + return ret; } int ff_iamf_add_mix_presentation(IAMFContext *iamf, const AVStreamGroup *stg, void *log_ctx) { IAMFMixPresentation **tmp, *mix_presentation; + int ret; if (stg->type != AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION) return AVERROR(EINVAL); @@ -340,14 +349,15 @@ int ff_iamf_add_mix_presentation(IAMFContext *iamf, const AVStreamGroup *stg, vo if (!param) { av_log(log_ctx, AV_LOG_ERROR, "output_mix_config is not present in submix %u from " "Mix Presentation ID %"PRId64"\n", i, stg->id); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } param_definition = ff_iamf_get_param_definition(iamf, param->parameter_id); if (!param_definition) { param_definition = add_param_definition(iamf, param, NULL, log_ctx); if (!param_definition) - return AVERROR(ENOMEM); + goto fail_enomem; } for (int j = 0; j < submix->nb_elements; j++) { @@ -357,25 +367,31 @@ int ff_iamf_add_mix_presentation(IAMFContext *iamf, const AVStreamGroup *stg, vo if (!param) { av_log(log_ctx, AV_LOG_ERROR, "element_mix_config is not present for element %u in submix %u from " "Mix Presentation ID %"PRId64"\n", j, i, stg->id); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } param_definition = ff_iamf_get_param_definition(iamf, param->parameter_id); if (!param_definition) { param_definition = add_param_definition(iamf, param, NULL, log_ctx); if (!param_definition) - return AVERROR(ENOMEM); + goto fail_enomem; } } } tmp = av_realloc_array(iamf->mix_presentations, iamf->nb_mix_presentations + 1, sizeof(*iamf->mix_presentations)); if (!tmp) - return AVERROR(ENOMEM); + goto fail_enomem; iamf->mix_presentations = tmp; iamf->mix_presentations[iamf->nb_mix_presentations++] = mix_presentation; return 0; +fail_enomem: + ret = AVERROR(ENOMEM); +fail: + ff_iamf_free_mix_presentation(&mix_presentation); + return ret; } static int iamf_write_codec_config(const IAMFContext *iamf,