From patchwork Tue Jun 15 23:32:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 28330 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp4311351iol; Tue, 15 Jun 2021 16:35:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzCyfgyft6A3EYGdsSMRkTqpWdGqaEL6EdwgsQiWaU4JWpaxbM64ulTqLdJDLz95RbeIIp9 X-Received: by 2002:a17:906:7946:: with SMTP id l6mr2066840ejo.50.1623800102373; Tue, 15 Jun 2021 16:35:02 -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 c7si365407ejc.291.2021.06.15.16.35.02; Tue, 15 Jun 2021 16:35:02 -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=QTeJA5uv; 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 10F58689A02; Wed, 16 Jun 2021 02:33:27 +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-vi1eur05olkn2079.outbound.protection.outlook.com [40.92.90.79]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 60BFE689965 for ; Wed, 16 Jun 2021 02:33:23 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DdL1taU8kESR0uirKGQC1x4R/tweJuyxNqjF7uDsDJtp/YlsRAwA3uFouu/ujwSplqPy3+AQ9+J/1s0vj+Fyu6qeIdOgjvx5PZHgHfVcmAI0j0jSouhmS3m/OGTOz+QkqIq3jcvrR5zr3tVUNa41q1pZOd95QmhezsxSIeVusiohfpo0LP1yrAGnSElUhMYjzAf2RtrPjBYk1P9fZRmqxznbm29phdYg/3R8CXjS/d+h6rGOR/Sjl/YY/HgC/gJuMvYj3xLheVR8pP66ORXHf29jdYu7q53YY/8MHOvb43twUs/eaDxrkjVNF0FQNAdYlmXTYaZsPGFvnjOq1OG3VQ== 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=oDB0HnfqPY5xl2eNOltva+plE9k/GYeaL1EsorWquvk=; b=J2AfFdBtibu5yoI0Uqzf4chrmg0SjTXcZ4uUm30NZAEXJyI/NtMohm/5oIucmqCFZ4vyOAotyBmf2XdK7oulUprmEUSBjmBtgEyvTKmuUXhgcmHjSCo3dUeYocyEKrDiPhbQ3tD8dkbV+ZE/jp3O7KLvP2u0wKJKFnLwOtoGnuY2Rsp9BzNrHleeVQ7M4/YoYQAbiZkdODipbY3imHKXpw3rufvMGCTlyVeSs3VVGZ6ZpT5IA+2ErgKJ7P9WEhmCnLQ3T31ahQSX3+0cWqKVfmBhEn9KhgZWrYdOxm9N4hvofZgnCWA3rQRwOB4XL9u1KAFRvBUBPPplV/05uSkJxA== 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=oDB0HnfqPY5xl2eNOltva+plE9k/GYeaL1EsorWquvk=; b=QTeJA5uv00kSFmYcMzrKBvI4NCKIQsIoJcnI4Q0svL/mfSbpI1G5IfCp7Ky2uBJFAQa45BZYEAOCaYCR+2L5GgAsqDI5eiyPbGvAWyE9x26N3kWActe6PxyH+fo94XHtBp5BGAOHHWBR+10RspV6tztdFNjBvDqxUUQq6JZlRIoFOlcoHYyWXTQskN4WB9BvagEZjGkgQObBttD8RjmNG+/EQUzjoq+Wa3gnvahsuJ7YlYR8golWR/fauFRerpv2N39/bqwJEEjLb85c5O1nU+BDgL7hX1S6fGe4ukxA8CtGglJ16bspr+CnC/h2om3fsj6HE/xbsgJZNMDoqitgTQ== Received: from DB8EUR05FT045.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::41) by DB8EUR05HT100.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc0f::330) 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:22 +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:22 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:CCDED265DE4822C5BD5279324B9989BE9A29EFFAD2E67199762B5032F00D09CC; UpperCasedChecksum:1FD456D47E9A817F7D1001607F2CF2C07D7F96E6D828A9F7BD1674F3CFD73D46; SizeAsReceived:7594; 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:22 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 16 Jun 2021 01:32:04 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [fLtbN7cOq0pZbjqhsSNDQxll/cfn+v6M] 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-14-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:21 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: b7ec3131-c6da-4fab-d4df-08d93055f695 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiR9SlwCHtPrt+MV8TUUwp4pWhkGqqrkWQINYQnacuBy6J/a1rG29L1DMSaR+Hl4t8Uhe7SyKIHrqv5axrQyR+ggmjh30kXioPyAVKCRoVRF9A/z5H+B0KfTF3uyGHHpqWLLCm4am26olAHP4dYCJHgBKWFJ0zGq1pCDi7p2f+Dg2WcdG3CCXraD9tCz6q3i0irYSytnb4DvGp8cFDxwcgIGI7qPNRUevShOP+i2Qdk1/LjmaivwBfi2sgcb2hxXrfVcAKXHwhJhIGYDXb0MMcj9Igir4yEJU4fDNzP1aKycNoPIA0AbD7cBYYK5OTgDTEwEPe3l+ieiCXNfv7tpdfAk0WS0lN84d5+LSZ2woykjacEzR6siRWz8ZE9klwRi9W0VyaLgKrsfraSENhmXUHeYPaNS8QLk1QwJ2LJ2X7Jt7rN8tx1PffrrsUU9aC/Ll0VeLtcYPEaYJz3KHJyqwfnug98jr4FxDqW4RoVrrqh9HkpCwQ6CifyS1MSYGo0WG6ajbLVCu51tSOhuch1TVWrQWaAFfU1KX58Ob5Tjx0vjLmeP8U05L+BqUltBZRxneZeih7h6BNgM3pZlSrheuMXgjUsP2bKxf1CnGKVCF7Peurn8v7SZEzzWvyY3nuClvwt274VyhtKo1zc8+At6H6B8lEvZrx2qSxbSwpS8hTzcA6sBODSCQ/IimAtrQ9MNazSdYO4dIKg0H7kZHgF2T+b8scRg42OFislan8KpUiyHWH2QfcYhHqGILZLYddsxkQI= X-MS-TrafficTypeDiagnostic: DB8EUR05HT100: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7ToFb/X9ppEgye+fkWRd8PRx+UCJJ5WhudPX4cVoVdIwWVg59+fSihjDr4lDw+J854Tzp1IJJWbaPlwi1VEH1tmCrSKa0UEoWUhASO6Tt5KuGTxJQuYzRBxt9vwRGIjDg/qgNYYa2I9M2S+3LjRg3bqt8Pgnx9QfCByMiz75EHSQsMLFXP2QNPvCSSQDuDseQn0lSHYL+Rnq3f4gROWrkcaiBCxh9mzGQjffjn0xCMrhaSBQXiisADwLfvD5gz3cgq6+9JUkbtpxGGIoh5iWKc1JD76RNmnihxxEeScGOjl/7xbGnnTFPQU14x0OfXQaOji3hq3vFtG0K0xFXcKCaq7d6vPf+44vsQzo+CIf56A51iuYxW0Q+kziNxuWMg0KyyfF61UoUQ0e0d9Hunr0eQ== X-MS-Exchange-AntiSpam-MessageData: NsNVsIx8Ic7XHqLShSzFCGWZpJEPIJsJxueodlMuF9P1fMFwxuv4Ahg8/ZT5aciKdyTFI0R9MgNsIOkCo7Kfv96AhnSmXSI7raTUwHlt5aqw59jk3LRw4s5JnOlIJEV+vedgZq59tioH2ZHUNx9PFg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7ec3131-c6da-4fab-d4df-08d93055f695 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2021 23:33:21.9362 (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: DB8EUR05HT100 Subject: [FFmpeg-devel] [PATCH 15/54] avformat/icodec: 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: 4JHiLOO1ac2D by setting the FF_FMT_INIT_CLEANUP flag. Signed-off-by: Andreas Rheinhardt --- libavformat/icodec.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/libavformat/icodec.c b/libavformat/icodec.c index 9349582ffc..2e677c78f1 100644 --- a/libavformat/icodec.c +++ b/libavformat/icodec.c @@ -96,13 +96,11 @@ static int read_header(AVFormatContext *s) int tmp; if (avio_seek(pb, 6 + i * 16, SEEK_SET) < 0) - goto fail; + return AVERROR_INVALIDDATA; st = avformat_new_stream(s, NULL); - if (!st) { - av_freep(&ico->images); + if (!st) return AVERROR(ENOMEM); - } st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; st->codecpar->width = avio_r8(pb); @@ -116,12 +114,12 @@ static int read_header(AVFormatContext *s) ico->images[i].size = avio_rl32(pb); if (ico->images[i].size <= 0) { av_log(s, AV_LOG_ERROR, "Invalid image size %d\n", ico->images[i].size); - goto fail; + return AVERROR_INVALIDDATA; } ico->images[i].offset = avio_rl32(pb); if (avio_seek(pb, ico->images[i].offset, SEEK_SET) < 0) - goto fail; + return AVERROR_INVALIDDATA; codec = avio_rl32(pb); switch (codec) { @@ -131,9 +129,8 @@ static int read_header(AVFormatContext *s) st->codecpar->height = 0; break; case 40: - if (ico->images[i].size < 40) { - goto fail; - } + if (ico->images[i].size < 40) + return AVERROR_INVALIDDATA; st->codecpar->codec_id = AV_CODEC_ID_BMP; tmp = avio_rl32(pb); if (tmp) @@ -144,14 +141,11 @@ static int read_header(AVFormatContext *s) break; default: avpriv_request_sample(s, "codec %d", codec); - goto fail; + return AVERROR_INVALIDDATA; } } return 0; -fail: - av_freep(&ico->images); - return AVERROR_INVALIDDATA; } static int read_packet(AVFormatContext *s, AVPacket *pkt) @@ -224,6 +218,7 @@ const AVInputFormat ff_ico_demuxer = { .name = "ico", .long_name = NULL_IF_CONFIG_SMALL("Microsoft Windows ICO"), .priv_data_size = sizeof(IcoDemuxContext), + .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = probe, .read_header = read_header, .read_packet = read_packet,