From patchwork Tue Jun 15 23:31:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28323 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4310689iol; Tue, 15 Jun 2021 16:34:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyf+kY4tXPVWFyVzwQuefr4tR34yO4xVUBB+xDHZoGNbqGUDVhGZBggR8z4hshJwrqjlcSt X-Received: by 2002:aa7:c7cd:: with SMTP id o13mr670231eds.269.1623800048496; Tue, 15 Jun 2021 16:34: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 ar13si380671ejc.73.2021.06.15.16.34.07; Tue, 15 Jun 2021 16:34: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=XIyt0En4; 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 0C0D2689888; Wed, 16 Jun 2021 02:33:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2019.outbound.protection.outlook.com [40.92.90.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 65C61689248 for ; Wed, 16 Jun 2021 02:33:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=esmKDAtIo+EWC5i7ScRJ7sUhuZvs2iER6OTmEuGNEFA7FQmn6tXKUlg8K/9xmX9vDCeJGdd4TglNLL5VDn9PAIQC5MkgnxLnft9y+8/tRKjdSp/RcWzTMnHrbF0qrN/O6a2GUOfA/FFxKatVtfVSKhad9Bbv+HqrQdmVtTuCsaVpO+rs2vccyL6fEDOQZ5EIMjMR+yxw1RMnzvtkn+6voSFdRSbXHfTyDTecGJ3WDHL3ClCcs6y4Zquv9c2QfADgtQ1hFHJSFdN5tVCowYhbIFOU2/fGD7hOT5Uc8aKTSLs4ftXWkxv0O7I5oQ++C8h9sIynW4yLM44HdPWQRag0dg== 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=ENOImnr3Ey9FVMJ72uT+/nnTfOTMZXETX758IZS5bCg=; b=FNKMoUQ5WAHrn5DmzcziB1kRyJN6+tv0WSzDFXmwdlgUEPKKZ9ZrK34+qoUlbYKXPy8BU/MHywH2qT6cw8PFCJo1Yi3o0K86SkMPUDvD3NY7+ukTo9nouXPG/YX24eTWQRhlv29j+GOph67+pi6mAEbzL/3olGm2z7zfauuYP3Jc7maOIlN770toEnS9+Oh6i1FSvLVuUcyRRDDpf3Kkl4CRbf8VHRNYyODqo79S3yw+AuUsBa6lKDei2hia0qYBhYQrMefhB7NC/4GsXPToCshKh6uFyPzXG/2LMN/35dwEP0T1Hqt3a7eeCqUeqXNMPi41rsqWryJBUTmGhJO30g== 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=ENOImnr3Ey9FVMJ72uT+/nnTfOTMZXETX758IZS5bCg=; b=XIyt0En4f9Pd+ld+djnO+64OeMAQUJm7LQ5c7HLtfpFy69zNdX1jgaKIreEGWHLlbSxH0iqby4/HgLblDSKaAKH0yiEsWGhQbTRh0qn8jOEHUGa5JoWynOpOsTId8+ZubKfGd8wn3sjrRLnnJyiUj6OEPCaiiMkr7jG6652IQ4GHxzw6LK5NvjIuUJUWi2ElxRvwa9PNP4WuXGWn45YM9vSbPnQ2Ad4es0CeU7ngC+/yOD2LaXL2DxcK2hhN++PPhxIS0ZSsFVkVznEzl5QYF1R+RVZqBZJFeUZ2+KRsZw24bw3RySrtWkROwTURzmApdPhnnkONGbdZo0U4MA+miA== Received: from DB8EUR05FT045.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::49) by DB8EUR05HT063.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Tue, 15 Jun 2021 23:33:12 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::46) by DB8EUR05FT045.mail.protection.outlook.com (2a01:111:e400:fc0f::383) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Tue, 15 Jun 2021 23:33:12 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:C91C717076A10B9CDD05CEC790BDA6B20C8C0B5024FEAB8A1C956016A0AD4664; UpperCasedChecksum:7745481267492876CA8F73AC294A71D5CF0729DB016EBB0C2DB49BC5CD9BE694; SizeAsReceived:7589; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb%6]) with mapi id 15.20.4219.025; Tue, 15 Jun 2021 23:33:12 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:31:56 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [C4sr+w3CqKC0ezZB9xWC72JCfAjF0yyN] X-ClientProxiedBy: PR3P189CA0063.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::8) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210615233243.1173928-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.97.82) by PR3P189CA0063.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Tue, 15 Jun 2021 23:33:11 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 11c2ff45-69ab-4c0e-0395-08d93055f0bb X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR9SlwCHtPrt+MV8TUUwp4pWhkGqqrkWQJ/G2nBDhW1Vvb3M3LhdsBzRfYjYlF3GrdIxZr0pY0n/LUfzVvhRkdHR5MO9MKsQDl2L0vhuHEwDXBlFNgxdc7sXgtHCLwuEoJq0/kOUMjMU5ql0zkanb5N9dPZa5B/E1PwFnTcysUtAZZWkaTWtE00wbpW6BGJYOZIsbVzg/NuII4bJRfhvFuJlmssw00quPGZDW8OZOOQ80A2d23gEKWBQji9ZPrFnetB+MNuEOFggP1fjKW6APAq57IC3rfm6n2pX1ExmvOwLwj8ZnrNSbthKYoPhjAuhI67sLXLrGxNuc9goVzVz0D56iWGNJHBMC5yA/sDfRcNo4e/2fNNIiGhVw2jRgdqufoParWX46Mb01RutfuRU4XGn0DUAoAce4lSh9H/xdLnZsvd6dRVCH7sxLZVBKwkH5uPJF1WD2+wae8sn8FB1eMWxZH7izxlUr5Dx6K3CnqKwGhjaa7OmnqG6nbeh/Q7CZiFNrPBZ3EI23kfLXRTjPq7Qcn1bZmJVMKSK0kmcqASf/aiUM1fCNMLfpRdmgjL+WpN/hXvIuY+nxO3eXJRdpZ1BgetapkcGj38caOB2IjDcqmDWykjWmV9DrE6EmDspzzVcUh+I0B9xBAivZjMrqqNu3tJRoXuGnW0QMRwN6YCFtvUyZfwA0ozfHAtc1DL6CqMzw42HZHJ8+Rb0KvZyW6sUrAZrSeKXk/isUss1s9hDcY3FItK7N68BRTn7aHCmbw= X-MS-TrafficTypeDiagnostic: DB8EUR05HT063: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZnWINjYXpw5qTDpQDu7DBoPVo/PUwF+E1ePfR+ULk5pSV6IcUJ2wzUy8iUXUiXQ55+j2/z0KjqXOeVjRrtVUA4xYQXgKN9q2Ng38IVZ9agAJrb4QJs3ewKhlWzZJzxADJyhom0maGwEGEcs4cbRlYbK3e8QRF5lkT8p+0kZtPUAWyCVbCOJrhM0JsQM7jsrXkBckq2s9zTepJvd0NZ6+we33Hbpi1/Jei58J7cZdZC2PboLE7SfhJFjgiAkjgqeNFePM24ma3zPnA5hzSWILs7uopQNy8EzMGMYnU3pLc8OmK+YbBq9JEolTdgRb1Wxny6MitJfPrfXoawjf3NFcBBIoh55RvEItWlF7ZJLszCE6QutZF2WSKPSRAJq8gu53j0mExPKsJJBOPo7J7lzfLw== X-MS-Exchange-AntiSpam-MessageData: yzg300iE/BlA2JmR0kiERcRckP9yJ+HeFzAkOziI4FlviLHR0oZ/3EK89FjIzYqE9ew+/DsEtr269ZtE1mGEuXSISTFoZPm3b+jcM0dQw5wL727AaXnZYU+Ig1D3v+x3CUzGi0N4rb3LQVkubS7NAQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11c2ff45-69ab-4c0e-0395-08d93055f0bb X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:33:12.1096 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT045.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: DB8EUR05HT063 Subject: [FFmpeg-devel] [PATCH 07/54] avformat/ape: Simplify cleanup after read_header failure 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: 5bg07OrJhaSX by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/ape.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/libavformat/ape.c b/libavformat/ape.c index a4cfd01807..b6f9be4dbc 100644 --- a/libavformat/ape.c +++ b/libavformat/ape.c @@ -79,8 +79,6 @@ typedef struct APEContext { uint32_t samplerate; } APEContext; -static int ape_read_close(AVFormatContext * s); - static int ape_probe(const AVProbeData * p) { int version = AV_RL16(p->buf+4); @@ -276,8 +274,7 @@ static int ape_read_header(AVFormatContext * s) if (pb->eof_reached) { av_log(s, AV_LOG_ERROR, "seektable truncated\n"); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } ff_dlog(s, "seektable: %8d %"PRIu32"\n", i, seektable_entry); } @@ -313,8 +310,7 @@ static int ape_read_header(AVFormatContext * s) ff_dlog(s, "bittable: %2d\n", bits); if (pb->eof_reached) { av_log(s, AV_LOG_ERROR, "bittable truncated\n"); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } } } @@ -327,10 +323,8 @@ static int ape_read_header(AVFormatContext * s) /* now we are ready: build format streams */ st = avformat_new_stream(s, NULL); - if (!st) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!st) + return AVERROR(ENOMEM); total_blocks = (ape->totalframes == 0) ? 0 : ((ape->totalframes - 1) * ape->blocksperframe) + ape->finalframeblocks; @@ -347,7 +341,7 @@ static int ape_read_header(AVFormatContext * s) avpriv_set_pts_info(st, 64, 1, ape->samplerate); if ((ret = ff_alloc_extradata(st->codecpar, APE_EXTRADATA_SIZE)) < 0) - goto fail; + return ret; AV_WL16(st->codecpar->extradata + 0, ape->fileversion); AV_WL16(st->codecpar->extradata + 2, ape->compressiontype); AV_WL16(st->codecpar->extradata + 4, ape->formatflags); @@ -366,10 +360,6 @@ static int ape_read_header(AVFormatContext * s) } return 0; -fail: - ape_read_close(s); - - return ret; } static int ape_read_packet(AVFormatContext * s, AVPacket * pkt) @@ -454,6 +444,7 @@ const AVInputFormat ff_ape_demuxer = { .name = "ape", .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"), .priv_data_size = sizeof(APEContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = ape_probe, .read_header = ape_read_header, .read_packet = ape_read_packet,