From patchwork Tue Jun 15 23:32:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28356 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4315003iol; Tue, 15 Jun 2021 16:40:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxr3qtFwfGz/9CZqVo3UmaShAZ1o6Ohoa3bDXsMelw9iC5K+1eRe5btLaleItBccdMIbhrp X-Received: by 2002:a17:906:8688:: with SMTP id g8mr2030412ejx.470.1623800452831; Tue, 15 Jun 2021 16:40:52 -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 z21si322354edd.20.2021.06.15.16.40.52; Tue, 15 Jun 2021 16:40:52 -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="TBqp/r0X"; 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 7E65568A17B; Wed, 16 Jun 2021 02:34:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2050.outbound.protection.outlook.com [40.92.91.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7894C689FE2 for ; Wed, 16 Jun 2021 02:34:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F5gWUvHQ1o9401gL8jI2V5mYJiIGbfldzoTbkdHQj1JTM1VRBCJQBodbG318sQudXggyvG9gnA+RPWiB/z/Vw0JnT3rTj8A1HnHSG+YXOyXamVx3jsDGE0fdMzSSc0tDNsq6W0iA3lr2QQ0Do8ygnslEdbg/PxIfeT6kq11J81/MonQVFPAy3dcRkNIPENFD32YdjHKOD7sD7ifA88jt6KHVbil3Bv4loYMVC1iX2NLAm+ZcF1t4gtmOclOmriXDBod8De8C6puv9EJs5MFA+8KlSz92vmuREbZ1GVCiC+csZdNaExkWIiccF6LSaDmBsRpEDphUiowO1tgBR8QGFg== 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=6T23sqBcCjaTrcXGAt9AkGaWhEG3UxEXajW512HLQY8=; b=dHTOr9E5yIG7ipsh0UJQ1AzyIKW9yqqz4gtVkFRJY0kDuCKoxxkHu3toeCugdCEIRB5Y7i9hl+TKRI3RlB1sIUG8erxuypSlpWZdDgZAfVCtK00tCwpmUUTRN+bPQdhR44Dfp9qKRz0E8Sk0sDF99yW9qDOdIh2CjSIMl2bwS4VLP0/liHqqYFFYtVxEksOiHx4y3CelbkYSRLJVsKK5MjvuvHmyk64oWv5KRSN0la7Lp/JQrvjSu2QSS4Zi061XaGIm3w0cYTy5n2sd+GNoLXVKKWYaEREkutcXxT55iQ5A8iMdKaSkePh3hKeYfULuLHxjSuBX4W2HHHmNPxcTBw== 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=6T23sqBcCjaTrcXGAt9AkGaWhEG3UxEXajW512HLQY8=; b=TBqp/r0XEg4GgLS87+bxHZH7DNCvdVmkb57I7FPxZGei9PdmBcKcfRtwN6IDLP7Tah3mlg7LGOTF/4uWJyiP6Znjh5cepuelgOKspwC2YnO2P0mww5vrqEsDWduJkK0TzVwLrek8+BUGhLyOr+vQ9UMZD9ic91mx4Kfaw/CVQt41ofrgSDDG4szuKPgh2JmkWoxaThUK9A7gWOFKIe3RvSZMZbeEYSi0WiRs+ZER+R782bf5eCzrmanKZAdZf7Xb9v195n9s+Acs3YEfPnQ2qAVaMHDIB4H8s3MUyFsHgR0SWfbvibZnNin1Hb21q9jQASXpTlnp3hV9UNPmqQAc5A== Received: from DB8EUR05FT027.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::4c) by DB8EUR05HT034.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::163) 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:34:40 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc0f::45) by DB8EUR05FT027.mail.protection.outlook.com (2a01:111:e400:fc0f::448) 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:34:40 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:4E8F27327A2162994285E8A61FE6AF21CABAE7BA9667D36A6C05996F34D0A092; UpperCasedChecksum:07746BCF2C511A92FA83AC8DBB3A8459D410FD6F89EF072DD053788EA7EB83CE; SizeAsReceived:7770; Count:50 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:34:40 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:32:41 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [1MZMuOTWCREaoUsWJ0XjBKVEnKvVXAUD] 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-51-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:34:31 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: a31b7a8c-26c0-421a-e956-08d930562071 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR9SlwCHtPrt+MV8TUUwp4p0OETr0+Jrn2aW1jxIgMYUaObSqmwskCosDNop5Tk9ulp1lMTaYQPkGrd7eTU5eLbRcsU+oi20U7e4DavPIFhjQE3b1YkHIrA7gpc27fuju8YxYHuOpOp9EKFrUYw0BCjywNDly8mZlCrVgvn4PrhQ+fg6q2R4nICVowF4baZIPz4oteQXkGLlBWkoFPVpDpFzkgVaZHO1xM0rLI6aEi9oPAanzxel8JtG+/A2+cHOp228Ex0UHLnqKi+2YnoriqnipleJBUTOr3mOnbkwPEazdivUUnMSmt5AEkLRyo0kcVKnvDU27C6//xy/hKUJGt+z8QkKcj28a196ZKYU1jFowTB/gW/BPtkGcnSYOv1fwyEMA+spVmxs000T0tvqzkBLMrqJDSBZsZj0h8ZcJqUiMXi259GqbvnwtCGyBaaNeSQNUviJfijY0NWFTr3Jy7IbnW+pKhAPnnSPK/szYHQdeM1HfUENAyhmxQLwHn2Ba5qfdTYFOTo1bW1nNAI39LqTa5+utg+CCk4IuaEHWiP3b4AWlbpQQp4FkDHj2l5PtIxWDEzjb5xqF1F8ZNAucXZ3Flrf35RiDr+ppYEv/3N+25SPm0vzzPmmnjjTRctl1JYW7CWb86V85tZiLA53KTuNDDZWjDET2qgiVyw+zpP8r5Rw41CgpcqYrxPrDbOKiFGnTE19s3nApiAd0H2NR822r30cmNFnqNjVPEp3v8g9bdGBoJjD8jzx6jAAh474Zg= X-MS-TrafficTypeDiagnostic: DB8EUR05HT034: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ClA08Rv4+Dh3YBsIxnHxcSiCX0JqyP9GlRydU+zJ/7xbVooe0qZp9D2koFVjqPLJCoCGQtfs0Db4Jh8h83ATX8c9dMWXwpAbk9u/Lgd8M1CToy0r6b7e0RJbS/5ZLx1tZ9j0o7Izch26Qv4fPK+ZQHC+ss5U9oCCMevPNBxlliUyQuo4YVIONd+hB8H59bMichlaA3aEv8hWFd1g6OHKf08HIybnKjj30CEc39bek2pRtDNkuyd899CPqb0WqrNOwg6FpDshGe7YznS9IuV3Y7x2V/Q02O30SJo2ze6IitIrzbMPglU/9W1zKCrRfLdvcaRgDdw9t3vRtrG+SpI1JSMRAI9ULjBFH8K5iC3XEYdz3clb5GVvF5ulMPUzu7gqVTfJCgNOx0ajXv/aT4aZaQ== X-MS-Exchange-AntiSpam-MessageData: /dZKkzkRxH2/8GzBrXbLz7T1fpgysewJmU1qVrJy6ALHlN3JKgUTSoUlxkQl/BuP8oKqe7Okis9glq6d1/ywRvsRKuVHdxzmTJywOpLIkYswxjcBD1ycHUaZ3GWdg4b6+C92fZ2SxIu56GKZt3t/1A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a31b7a8c-26c0-421a-e956-08d930562071 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:34:32.1561 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT027.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: DB8EUR05HT034 Subject: [FFmpeg-devel] [PATCH 52/54] avformat/wc3movie: 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: Mr8RCNoIPksO by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/wc3movie.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/libavformat/wc3movie.c b/libavformat/wc3movie.c index dfb2462072..fe2d0d4245 100644 --- a/libavformat/wc3movie.c +++ b/libavformat/wc3movie.c @@ -139,14 +139,10 @@ static int wc3_read_header(AVFormatContext *s) /* load up the name */ buffer = av_malloc(size+1); if (!buffer) - if (!buffer) { - ret = AVERROR(ENOMEM); - goto fail; - } + return AVERROR(ENOMEM); if ((ret = avio_read(pb, buffer, size)) != size) { av_freep(&buffer); - ret = AVERROR(EIO); - goto fail; + return AVERROR(EIO); } buffer[size] = 0; av_dict_set(&s->metadata, "title", buffer, @@ -168,26 +164,21 @@ static int wc3_read_header(AVFormatContext *s) default: av_log(s, AV_LOG_ERROR, "unrecognized WC3 chunk: %s\n", av_fourcc2str(fourcc_tag)); - ret = AVERROR_INVALIDDATA; - goto fail; + return AVERROR_INVALIDDATA; } fourcc_tag = avio_rl32(pb); /* chunk sizes are 16-bit aligned */ size = (avio_rb32(pb) + 1) & (~1); - if (avio_feof(pb)) { - ret = AVERROR(EIO); - goto fail; - } + if (avio_feof(pb)) + return AVERROR(EIO); } while (fourcc_tag != BRCH_TAG); /* initialize the decoder streams */ st = avformat_new_stream(s, NULL); - if (!st) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!st) + return AVERROR(ENOMEM); avpriv_set_pts_info(st, 33, 1, WC3_FRAME_FPS); wc3->video_stream_index = st->index; st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; @@ -197,10 +188,8 @@ static int wc3_read_header(AVFormatContext *s) st->codecpar->height = wc3->height; st = avformat_new_stream(s, NULL); - if (!st) { - ret = AVERROR(ENOMEM); - goto fail; - } + if (!st) + return AVERROR(ENOMEM); avpriv_set_pts_info(st, 33, 1, WC3_FRAME_FPS); wc3->audio_stream_index = st->index; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; @@ -215,9 +204,6 @@ static int wc3_read_header(AVFormatContext *s) st->codecpar->block_align = WC3_AUDIO_BITS * WC3_AUDIO_CHANNELS; return 0; -fail: - wc3_read_close(s); - return ret; } static int wc3_read_packet(AVFormatContext *s, @@ -313,6 +299,7 @@ const AVInputFormat ff_wc3_demuxer = { .name = "wc3movie", .long_name = NULL_IF_CONFIG_SMALL("Wing Commander III movie"), .priv_data_size = sizeof(Wc3DemuxContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = wc3_probe, .read_header = wc3_read_header, .read_packet = wc3_read_packet,