From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id DBAA4425AF for ; Sun, 20 Mar 2022 23:26:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 52ED468B167; Mon, 21 Mar 2022 01:26:23 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2095.outbound.protection.outlook.com [40.92.91.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A4E9E68A774 for ; Mon, 21 Mar 2022 01:26:16 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JtC/AgJvhmj7M9SarmAzCaCFTXZ3B/ZrdxZB+eHXgMDXMZjjgH9t8C0Jme/huA7i7fPNWrv4H8uJ6ZLMp3xBDfkVOqjB5k5y7cPN/LofH18Pl6eC2oK9pG1eVFviOcY0ukUoQUedmhs5woNCfoNMzZdPA98dG4+exVaya2QD2AnvaCP/cKGmdF3zLm+ld944PWXlyREGo2wht2ZJ7CtAdF2rkEtoXuGnyQxPUTOQRkHhWASCoX0x578tirb4Q7UbY6uAIQZ9kWgn4+Yi4Vnk53p29t4BbQk6ORe8pzHvyhxBNgHTm6ParQmxutjCHkkMEFEYAUOeSSVVYPzdi+vppQ== 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=qGeztgIW1/4PbjPHwaZs3oSzcoR5dkUeJ3xUrmwHZ+0=; b=aqVUETT8Pp0PABenDL1+T+ltc1g27n9m6xb0u0TT8NlP7eXHy8Fua6EJzuVqgBOQq1ch2g5iMCroxJG0zOW0YnraP03A8Bgqc86FxR6HVkuvI8c/8t5yR+WsnckkbGw+PqoGRZDxGj1V8BOmiqrK5pgxFLs0tesX25zmtblTgFbopD8oNjCX11FszE5Ih46yDldDlWGV9y7e6l76fOtcvfmtuzUkRgPkMXv5GMKzcf7ZVNkJemI3RihiieqyXCFbp5uBfV7P653rnly5Wka0GgtJX9j9+tCLxCb5VoKsUyJ2S+rGuWGUIqtTOTP2uPgbYWCzG+65hEPoLuww0UQoJg== 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=qGeztgIW1/4PbjPHwaZs3oSzcoR5dkUeJ3xUrmwHZ+0=; b=DhlijrJZTqlEzMUQGnbPAWsPedzHljq/qzQUIX75H5vGQPN/C9mutwq0AefPTDzfcwoxqI8ssatHMslCdTM3so79zBc/Knni5rRsuVF9UWJRoo8y/GCutSvrhDfQGRYRYkWbgFBSELNfp7EJv67q7gg7pewg715pihpcUSUv+knmSH2Lbr2BnOfCy06gLBhAU2VbGdRx8bjhrH/PpUG8uFWEgyJPH4VLM+oTc19yRwwWP3MKWyRX2EtSXHVXsRWGMneR0lgbkL2iV+vLi09BREn6vxlqovkHriJZ7LPwLZjBKokOjwmm4NsG9l/YP7CVL4WOSKtiE/4WDC8jj3Z/Eg== Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) by DBAPR01MB6632.eurprd01.prod.exchangelabs.com (2603:10a6:10:18b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.15; Sun, 20 Mar 2022 23:26:14 +0000 Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8]) by AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8%3]) with mapi id 15.20.5081.022; Sun, 20 Mar 2022 23:26:14 +0000 Message-ID: Date: Mon, 21 Mar 2022 00:26:12 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220320231809.40398-1-jamrial@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220320231809.40398-1-jamrial@gmail.com> X-TMN: [m/UKQG0rtv+pxfjUm2gWPneaFpCopDlm] X-ClientProxiedBy: FR3P281CA0004.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::23) To AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) X-Microsoft-Original-Message-ID: <7dce0e6e-1a97-82f3-4a87-bca451a0e8e8@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c3bf975d-12ea-4089-ca05-08da0ac906ac X-MS-TrafficTypeDiagnostic: DBAPR01MB6632:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n8qoutIqFp389AjB4JidbX3axNxT8XAt9icHzUSAuNByO0yKD+3KTJ6NSG7XxkLsV4WkBPfbMgT6uPeLWbWDTFKPG+HPArcQYVAES+Q8ZBMZ0nNzHaFlrjwZ4pg+Pv/MWNY50lqfJaI8z9jiK3BR5Zk6/vaWMuxcq8bHj//SpCXBA/d2+iiwEjZYX6U+OzzxQ0Q7s0vgfROP2CEaJgvQ8FLt1+h9Emo5FFl57WsaNw3HnJbKRiomSp5us6gSXSo4VrEbpCp+edBxPIKHTWyp61F4/YTnEYAhjQBaweD3RQ/vSHiDtghkZON8ln3Sg0yNBRdOWtVVg70UCQDEL+di9q9MbC2U86Z3KP7JqtWbiinq7D2PZgjuH+gOnz9O7ghVQp6t3NxOpZMNytxCNME0atanlrGDaYY/bEfsPFiGAU1it3eVvwZhZZ6tHb5k6oo+wkM0HytU/ONI7IJwmM7gq41Zb1T+70kKkSHKVR/PDYTvAuLlgrxyExc7bikZTxFxuSLF8TdphJkG1wdNeVnw32xFWbHyMxw4VvLqxsbYV/36pzpVK/DsabF+trqMue/gZ+8x6tT5h7cYmCNgBZF6oA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UEt3YXhiSTAxUWtVZmRNNjJGRW9rbTJ5MGRDWDQ2UmFSOWtqK051REZBaGNT?= =?utf-8?B?QW0wWFBHMlMwQXozc1FyYTRmcUMvNlVGNmtiZ09JRDhuMVFURmhqb3lyQSt2?= =?utf-8?B?eHhCaEFocDNwNzlHSGtHcVhxZDlkQ1h2cHRTUmM2NHpQREFta3VDaUNxVDY2?= =?utf-8?B?VkZoSGcveGt5WGl1NGhDWGtTU3Y2a0ZtdkUvVkdnQ1dmZ1MwMDRzQU1qRnVy?= =?utf-8?B?RG5pYlBBVkpMSk5Cc2dkS0dPNUY0MWtZYTVtM0VIQnZWMW02RitPbE4rNXYr?= =?utf-8?B?QUhlS0hmTXF0Y2QvTEdaelVZWFlVQ2xVZWVzWkk1SUZrSHFEUEg4SStySWNz?= =?utf-8?B?MnZOcjFFTjMvNmlaMDVhUjZSS0VTSXp6NVl4YzFjNXg2SU9qWWtoTTg0WE43?= =?utf-8?B?amVxUW4vZ3VFRFpZQkxzWUdRMGlsSmpQdGRpeE1kSjhGeURGSVEyWlNzQTY1?= =?utf-8?B?N3grMjk5NjNYc0ZZNXB1K2p2ZXg2YzFoT0hVTnoySGgxN0ZEZXFtOVEwYW15?= =?utf-8?B?WWtiSlNQV2V1UE9uZ0JXOXZUTmVabEJWSW4zS1VJVG9xTTVUSktXUjJrdnNW?= =?utf-8?B?ak5pdWRNZnRRSkpvTnBKYTliandySDlkZU5YZWIwVjlGeGhCK0kzRS96N3Bp?= =?utf-8?B?cTBWemQ4dm01K1BvelZJa21LNDZtWHJqN2Q0RU42czVnZWRyOVBoZHA3T0RI?= =?utf-8?B?WjhML2x4bnovcVNSQ1NzVUJpd1hqQWJXU2JQZXBhNWgweVdrdlZVV3hHZGRG?= =?utf-8?B?bEE0YSsxcVpDM2FYWWFOT2lWWmcvdG5YM3BvTkNOSEJqT254QW9NVTVSM2Nx?= =?utf-8?B?eFNpZldCcUNPaEllVEhXd3U2L1BHTnl5VVhDOHd6Zm1MQ3gxYmFacnYrL01a?= =?utf-8?B?Zlhlb3lNT0MzM2t0bW80YjlFWTVnV2lBR0F2aklwalFsUDMxUEdBNWVZVlpE?= =?utf-8?B?TjhYOU1pU290ZS9rN1RMUnl1eEdsYmhMMENNdTB2NDVFcndsNXV1YzFKbkN2?= =?utf-8?B?WjRrajY5MWt1UUVoR2M2dng1Qk5iSDJtc3pBNXREa2dyaFpCZk5iUlBld3lO?= =?utf-8?B?eitYRWdNaGMxL0JlSkZwU1lscVBodW83dWpHV1ZDamI3QzhQME00Z0wxS1pz?= =?utf-8?B?R2VBZ1JYS0lTc0pzc0FiT1I3SDYwTTJJc2dEalZPRm8yT24rNnBPSkRveE9C?= =?utf-8?B?THIzNGFGNVByTXRVV3dsbkw5UDVvUmNDNHJ5cWoyM3UrTEl2N0JvQnkrS1NF?= =?utf-8?B?dmFsUEVMalQyOFVPTlU1S2xZclMrT3kzOUE4Vy9TWWsyVUxlR3JUampkbTll?= =?utf-8?B?Uis4R2RFTlM1Y21iLzRwODY4U2hvRVhxWkU2UkZGdm1lT2V4Ujk1Y08zdmVT?= =?utf-8?B?K3VYSmxzZytmaFEvRGNxL0E5dTRXcjc2dHArWTVFb2xZbTZEd2plc09HSW5m?= =?utf-8?B?VFkyZTcxaEdJM1hTdnhSMEkraVUxRTFoZTFFR25iSVJ4YWtPQzZHOWhoUGJo?= =?utf-8?B?UEtndmtDdTVpK3dFYm40bFdodE91SVh3YlpLRUh5akpQM2F1M2wzOUNqaDI2?= =?utf-8?Q?Y9pFQ4Hve3yKnRiIT3vm19Cc0=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3bf975d-12ea-4089-ca05-08da0ac906ac X-MS-Exchange-CrossTenant-AuthSource: AS1PR01MB9564.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2022 23:26:14.5849 (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: DBAPR01MB6632 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/avcodec: don't free AVOption settable fields in avcodec_close() 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: James Almer: > It can uninitialize fields that may still be used after the context was closed, > so do it instead in avcodec_free_context(). > > Signed-off-by: James Almer > --- > libavcodec/avcodec.c | 1 - > libavcodec/options.c | 2 +- > 2 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c > index 38bdaad4fa..122d09b63a 100644 > --- a/libavcodec/avcodec.c > +++ b/libavcodec/avcodec.c > @@ -524,7 +524,6 @@ av_cold int avcodec_close(AVCodecContext *avctx) > > if (avctx->priv_data && avctx->codec && avctx->codec->priv_class) > av_opt_free(avctx->priv_data); > - av_opt_free(avctx); > av_freep(&avctx->priv_data); > if (av_codec_is_encoder(avctx->codec)) { > av_freep(&avctx->extradata); > diff --git a/libavcodec/options.c b/libavcodec/options.c > index 33f11480a7..91335415c1 100644 > --- a/libavcodec/options.c > +++ b/libavcodec/options.c > @@ -172,7 +172,7 @@ void avcodec_free_context(AVCodecContext **pavctx) > av_freep(&avctx->intra_matrix); > av_freep(&avctx->inter_matrix); > av_freep(&avctx->rc_override); > - av_channel_layout_uninit(&avctx->ch_layout); > + av_opt_free(avctx); > > av_freep(pavctx); > } This will lead to memleaks for users that use avcodec_close(avctx) + av_free(avctx) to free an AVCodecContext (e.g. our frame-threaded encoders do this). Notice that avcodec_free_context() violates the documentation of AVCodecContext.extradata (documented to not be freed for decoders) and AVCodecContext.subtitle_header and AVCodecContext.rc_override (documented to not be freed by lavc for encoders), so there is a reason for using it instead of avcodec_free_context() (even when not reusing the context). - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".