From patchwork Thu Apr 15 02:04:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26919 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 436DE44A46B for ; Thu, 15 Apr 2021 05:04:24 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2507D68A48F; Thu, 15 Apr 2021 05:04:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-oln040092066018.outbound.protection.outlook.com [40.92.66.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 833E568A0B6 for ; Thu, 15 Apr 2021 05:04:22 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dmQCcqXlFVG6e0wsCrSU8fT+ejnY8bIw+nvV+WW5j4EixclCAlasJQah0Rg7qk+F3I7xyu8AhuobFlIbvOoSwJirVecvqjDQme+nM+UejoEb+68Nkpa9gCwCfvcLW9yC61YDnmSzOVtU2GFhrwRzPcZ8INPN+NYuSxeTobLgMbPpR+1eDy8JjAR2Py33MG8tbcgGlSDLfRR2vYqM8yt8d/uriR/BGGOvYoIqLYK3Kat+ncXQTRbviMOB7pi/gigUh2JsZ7l5Uy+wUGLkO5KMYT0zZhlXcYesTnAdEXy0PQC3xhT+aK45v/rYHVdhIhnnKlNTSpZzMr59EZMXDrpOoQ== 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=NKGMJvOObRjHz9eKfKnlSszxp9v+7Q9/RWjgNZomT9M=; b=crufs8lr9LO7kkHKt+hiyz0DgKEmQFKDt0guEF329wQwy4SN/OmpiZkgQAXN+Kpka6cHP6UBIaOSJOOdfkNmWiMPrpIhMmyOzLxNzRQ5ZCyjM6E5j8oMxKq3xH3/6EwTWjylgvkM0WsKDAvAaWccDVDOIlSqcZPw477P02LClG7MfTBGn/zON3K5AwLSafN3fXSYQ4NpcI+/SHuLPOdOPzvM0nzO81H+Ky2p8rX5RWdLrvnP8BY7dXRaLNySwJGBUmuX6bu4qqx071W7SWiNt2SLKqWIRe7SCfXe6XJ39wz+w1oT+xJLDlEf4PmtPhELh7Sgfma4PWpxxs5aoj8Bsg== 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=NKGMJvOObRjHz9eKfKnlSszxp9v+7Q9/RWjgNZomT9M=; b=STJ0jcxRBdTju2kx0/VARSY+KIxUxafYyED74zLLIBvD+Fv65JgNErmPvv5yAYN7KE7LsbNpgJaGUsHnTjOZ+NGaG6GjjPpy5HpK3PwOyNDcEIzg9ywz/vaOj9cCcveZ7LBJ717DVR+/nXsMixnerkiFW0h/K3s9awll77/wHt3hrCB0tgyxmsWZH5DDAwrlD83/tHLoM4O7vQc1nfSJReix0W2iVqdeGYRB03AfXurDMuSwjKOTF31MTM1TNq5uactm5QmD1yjT9fOxGFqK5J2YN80jzuefw8QYesIgZAw3S/0IlPNW5FxW0tJ0HBMhQHEi0ktLyMguYzA6dN8idg== Received: from DB5EUR01FT021.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::48) by DB5EUR01HT044.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e1a::374) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Thu, 15 Apr 2021 02:04:21 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e1a::42) by DB5EUR01FT021.mail.protection.outlook.com (2a01:111:e400:7e1a::245) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Thu, 15 Apr 2021 02:04:21 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:7CE4AA6E15B653B2513FC21C46267AFDAC91D356493659B50EFA9ACF2ECC4E32; UpperCasedChecksum:9AD2B1F23116C2E1246519F48724758355110C1EC83827A3251F86EDC9312DCA; SizeAsReceived:7574; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4042.018; Thu, 15 Apr 2021 02:04:21 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Apr 2021 04:04:09 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [NWpbxTYfTaQXaBOKE+ELK+oO67o5Jdlr] X-ClientProxiedBy: AM9P192CA0002.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:21d::7) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210415020411.1411024-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM9P192CA0002.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:21d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Thu, 15 Apr 2021 02:04:20 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: e2a03b92-045d-4b20-24cf-08d8ffb2c8bb X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTEEqEyiKFNUcsVK4T7qzgRK0HmsoQiiyE+zPbaahugYwJ3SK+x/tfYmzHP/leLn3mtuyihqS0+GUaSvYlu9lF5Z8Q4LMpwRce7hCGH/fr1fjqa6dqxOE9RxU2FwW+MrirjdYYUS+oRcrHdDsAOjhdxwmJZy7PMFP/xsQVxLPF3jQfFcd2ESGqVnfxxYprH/2p1X0Ansfb9UTJFibGjWxt1rP8Wn0AXR9e6DEyD3t+mxCBSAyrxwplbwqwF8Tgfz56Sg5vVG/3yCVwmI5YHvq89pbO8sTccIMa81HDmF3fjWhZxI4+TIamVcEXZmxnrvFjf5Kxro7Mb4RDTaDXQM4Obrc1KEasG6a48TecPaMpvdmVeu338HvJDoftkCsQSpXlI9rulZL/fPIG2/aoHxROpMwo53PC7cwicS7OePemJX/rhpP9HrtsjhS7UZmG4SRm4P+wvg22zWZGy8FotQr50KvqUZSiyRWA2XOwEBn8kAmdYYQEOzxer8MwXb6iBnYP30VvqmxZd/tAFH4vM2OqTMqMjixBffoYYsF1voaMAHxabM02OzN0xM2QEfj1kD9gcZCI0sJU7T91NX32t2cDFVKntPrT96PsRpFXKvdwfUegQQapQUruAjDYyPl2ub4xMOC0PAyTkxzlekLOcSvCukf1NBBv7R2tRxSDaEY+rGq0MX6wdIfm4/oUms8VV2g/7WDKtTdeVzlWNN9m1DH08NSeLr2p+PsfBIgE8FXwTwtBY0tGnw7IQAQK6ca4vsS8= X-MS-TrafficTypeDiagnostic: DB5EUR01HT044: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aNVZea0E+F6XDq0HjiVJDQ5llBRwtzHSB2Kg4iSPKRaAlsCNTsR4403SJ8y7huiWXoXO90aB9F7lRqp/B5tHVCv/Ve7V7/fHCTtktnB93p9gg0kS8/j9PJKsDB0S2JUuQv17e+p+j8Zmjj14v+dUQ/FTRsCue1nSH7jnFDAs+HPu2iiCBJIPQPRTYy+aUzE2YW6bzQbCMNNaaCJGjEXHwzBVqdiJkNbeaNRsJLn92cU1sXf4o/xmQnE2XPOqHJ5Cp9JODMzG+2FkCaaD8ysYYKIlKhk9auFtFed2ADlldm6feTq3asbn+WkPQXbkYk33PMiSvsjSNVHrpn5vtN+rlvxrKZv+XL09pV9VR1wz2SjSti/wsyxw6X4up4Mu2Syy X-MS-Exchange-AntiSpam-MessageData: M6/z2UPlAkYhXYtLknVEq4N+ezJPURrnsfs2guYulsci7YGQXb8iiifRjl5QQ/e9nHQAF4ZLwZ9dAvS6Ru9kf4TVp3U7CKmGPSr0Bf4tBHLCmIBYmQlyME2NlgLiUIABjM39XYn49xvmoH7DzTsZ4g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2a03b92-045d-4b20-24cf-08d8ffb2c8bb X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2021 02:04:21.1603 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB5EUR01FT021.eop-EUR01.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: DB5EUR01HT044 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/libvorbisenc: Fix memleak upon error 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" The vorbis_comment struct used to during codec initialization would leak in case an error happened after its initialization (e.g. if the allocation of extradata failed). This has been fixed. Given that said struct is only used when writing the header, it has also been moved from the context. Signed-off-by: Andreas Rheinhardt --- libavcodec/libvorbisenc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/libvorbisenc.c b/libavcodec/libvorbisenc.c index 9d36457328..b556280a95 100644 --- a/libavcodec/libvorbisenc.c +++ b/libavcodec/libvorbisenc.c @@ -47,7 +47,6 @@ typedef struct LibvorbisEncContext { AVFifoBuffer *pkt_fifo; /**< output packet buffer */ int eof; /**< end-of-file flag */ int dsp_initialized; /**< vd has been initialized */ - vorbis_comment vc; /**< VorbisComment info */ double iblock; /**< impulse block bias option */ AVVorbisParseContext *vp; /**< parse context to get durations */ AudioFrameQueue afq; /**< frame queue for timestamps */ @@ -206,6 +205,7 @@ static av_cold int libvorbis_encode_init(AVCodecContext *avctx) { LibvorbisEncContext *s = avctx->priv_data; ogg_packet header, header_comm, header_code; + vorbis_comment vc; uint8_t *p; unsigned int offset; int ret; @@ -227,12 +227,14 @@ static av_cold int libvorbis_encode_init(AVCodecContext *avctx) goto error; } - vorbis_comment_init(&s->vc); + vorbis_comment_init(&vc); if (!(avctx->flags & AV_CODEC_FLAG_BITEXACT)) - vorbis_comment_add_tag(&s->vc, "encoder", LIBAVCODEC_IDENT); + vorbis_comment_add_tag(&vc, "encoder", LIBAVCODEC_IDENT); - if ((ret = vorbis_analysis_headerout(&s->vd, &s->vc, &header, &header_comm, - &header_code))) { + ret = vorbis_analysis_headerout(&s->vd, &vc, &header, &header_comm, + &header_code); + vorbis_comment_clear(&vc); + if (ret) { ret = vorbis_error_to_averror(ret); goto error; } @@ -264,8 +266,6 @@ static av_cold int libvorbis_encode_init(AVCodecContext *avctx) return ret; } - vorbis_comment_clear(&s->vc); - avctx->frame_size = LIBVORBIS_FRAME_SIZE; ff_af_queue_init(avctx, &s->afq);