From patchwork Sun Oct 30 23:56:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39068 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607719pzj; Sun, 30 Oct 2022 16:58:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7Tk9f/0FuUeYaZGWcelFNATIhGJURWqPeePSL+Soi2avX0ZBBW/I26q2y6leEgHhN03BP4 X-Received: by 2002:a17:906:1c0e:b0:7ad:c648:a4af with SMTP id k14-20020a1709061c0e00b007adc648a4afmr4801710ejg.277.1667174317890; Sun, 30 Oct 2022 16:58:37 -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 e10-20020a17090658ca00b007269ef1872esi6467136ejs.897.2022.10.30.16.58.37; Sun, 30 Oct 2022 16:58:37 -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=mZf3KYLQ; 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 31CA468BDCE; Mon, 31 Oct 2022 01:57:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2032.outbound.protection.outlook.com [40.92.89.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CD6FD68BDCE for ; Mon, 31 Oct 2022 01:57:24 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WFH7TIpGevjIb0k3uLU9kMXEtHr8/opNLY+eTrco75Q6KxXAmFYKiAdChV9nMR+Vc/lOB4tQRSOEOUUy8dp3A8bHvirfLfOTp7cSiAj63lqyuzKbYRF5nPwbyP/osyFQ8/NARtZ29kPdDnElShZWWsG266SSLSIJwJYwUedgL+/CavoraQcKpnmQ/4vm2rojizrAU2iIIDLijkfaA/ya3CAAhMhdUVdG6gJjqBnGZ/HFQQgZNAWiDufQPS1sJJ8N2fjuDMoI475VMDOjS/JJQbCwVPbFmzEkHKBRFixcsAzowSgWCyyW1F/qun/FvCOBFit2iANOuB9FTUkJxbe87A== 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=sR7B/n4S++Zf+LdjPlD45nOKGaPALWvWeWAVeUXSyus=; b=I2p2LEXA1zHVC4gS7tVOjaxP/dOFJNt299Ua1d/K+pNQtp8PpiGG2riaD6YsaAcA7vdWX7o8Vk1cjHpqXfeSSUwFssz4FDkBtJHBQt8vKNp8Bi4n9BIinBRrlFxwU/Y188WD5wOediQvU8WhMiH5jGoivI+zgB8srbWEH3u+IMV3Xr8g/jg+qTdO4YLEf6+ri+Otm82nxnmb4vUHN9oFbeZKeCIk4NZG6931t8n/jU6AbG1Anmh0Q+haPxkZtSzYN+AI7n4UuzEGPydjWvuzt1ccJOMFhQvRf5vg2OargRpWdqZQot8elJmYJwavdNR6nXzRNHhnA8RN6VWMxrlWwA== 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=sR7B/n4S++Zf+LdjPlD45nOKGaPALWvWeWAVeUXSyus=; b=mZf3KYLQqGBRTvyZRhR2ekKCAvZ+sB6OYzBSYREDlGX45uHdAbB3gzNe8XnYsO5U0jrhcEoFEqIwDZvSgEvjbi1AaCWdq13uFMQR3iEhAEu8A+K25U1PJVskMevU/7iQMriMDkX6NVXqvTdB0a/GEnErO0nmbf/rWPaw7RbW6oncbA2pHA0whuadFV0l/NiXNgvKW7NUiAZODk5BuydklXCUbM5lGnRXP6yGHvz8ReHK3QtCah0iutOAOKk2WhXvznF3JKIe8W2h8GeN3QNVfAvdL001TZfY12MPgRQVqpbEieEYRBUCIuuIzzBm6YIpzVsi/lqYH23xAxk0yNPT3A== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0453.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Sun, 30 Oct 2022 23:57:23 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:57:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:28 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [E73hHwM+Oabcm/2XtsfYHeY6COOkE58gnQz1Z1GRk+k=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-15-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0453:EE_ X-MS-Office365-Filtering-Correlation-Id: 08936e85-20d6-400d-21cc-08dabad27cfb X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxn/FJXV9AifVAmfFjhXa5IBl2L2a9UwnFo8B0c0HkByDIhDXSHWzLNAOQwtn17UNFtdgVaonBfn6M8AK/R0GchFbo7t+rBzDGPVUxxQ5Hpb1m873jcYaeau9DTl0FuTxTLHj5pMY8zIMYLmaDtulSinHb2NQjsZGu2fMn/34U7uaAhl/8qQheHT/2c7LtOvBUq30ooZDMM+WOW2X5ImQxNZxUOGRbJ8lUUSPNrCitE1QojZXQbM8SYZwibSKudyrlLQFDnjYrbG+y2MHIJ9W1EdrhmUfwqbs82Mo2Dh5AXSaSjVBVDAOkt1ULZJlSgL8JEdsjgjaBc9VsfMXeN4Bmhua16cYe5THXQMS74+JSl6y/v8mNNicq3mAOKrEt2jyue0zE+IwoIM99M3zUgLNAPZkxqYgwIo4lKEIY+ldqxvI/UN6vhR2A+OKHzPbf/p6S8+AR2q8t4G3PnyxT87JDwsarYNxOnGcO05M6hA0MN50gTIyk9H/nm+//plhyikaNgdo41wNMWQThXoEcZTXBFQcZVDJFSTk9PqVO0nWdbAeMTm1VBoYKR6yjDxtgEVtQQWk9m+O+I6EJwSxF592pMaM1ibuuKs6jnabsoKHe8H/j3ysv35AgVXt5KSrJO0VOIvCvLFk0CIeCLHB5Z+9XeniYx5Id5xnfqtoi/J80iUZb1Q0trnsg++x6vTZcbYdVvjby35b2g1+KU8gPyNChwl8xmkdKQQS0= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hWtr96cf1r+GfPB7FHfo4rxmVQ1gl3n9oMC0zbtvlqlgMIVwQFakOaDNjFHGb758Gcut1eGJQUJmHdszkL+Kl0EH7r3XriwYp5OIq9vFqu/HL4OPG2c/J9g7AtCBbqp1IX+gZH6BPxX7ckUjwgZ0kagW4/cTFNhgcfq+uStHDtfE+r38UuCm/AjrLA23EcUYWMiBIGmwIAHBIiTfXSkts+mXNyekMZV+P5Ur2gGVwqk05GJNA8algt2aVX897Sf8OK1zOBqimxad/dqbB2+ck0YLSxD2n+dYWqEXy2n4OgVmDER/ShCK9yIewdJmexggUxAGvoE4EVVf7SY/jv7ZaXmk1BO1bZKv1GlRlQysOju8dcy2ycpxnKXNaiGTv1aBzqK5A17Tq3Zh72s0zhdIHbSbY4qBLBuGCZYM9Pno2sWvX60edRgproT9g4U00McRvOY0pgFKILbOMxmvXSXae2lwhZaqUHgy/dgIspB1WpszAxAiYosg0CFOA/7MHTW6GI05woiuyE6Tmswe7kX4A+MYlQyK50Bx7FR1YsEbLk7+J566gsiQYqlpt8FXFpKs6INohEEL+XzCKl8n+lDPdoEPRJguIU7Z01EuTydo8Eopea1PZsb+ZBYhM/PZswIo3M1QzHQm3GAhj0jYA5GCH5/OHhPtQUrobDV1/kG8HiPJ9EPkGhhBosQHbHhgAIHv X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AEZxFpDKfglM4ZLZPaBy9UoJi755aeNFGOu7aUgaZMUBkPDbZcefaUe7Wv4Nns0y59h2R+qRRAv6XxsIshlmw/8Phit4d+qm4afOaN4LT+u+Vj+d35THkuhxPDKcO/8OI3nZs6YzoIwH2LaOnXLeSMh4vPjtacroukwZdn1a3XVmsSriTtLxKu7qFHhYaE/J0j4XGMKw5CICAjMk9RLPlpdSpCGhPQXTWngszFoDfrQv9u7ftfUWzJkQD+njD3LHTzAxLjPkjh/j9GZhEkDt/rBIlT+LaSPXZiK7KUvrqDHyQICR5WrCdbqqd30Qg+e231FilaajbpgU8ChoHb82Z4yTrN6+V6vxSB634LIly8fRSdvGn+Xytv2mHu8+Y0G7X0wcLXsT+Clv8So/SF4uA+wDN8r2A3m3mry7unpXDcEG6tPq8+TBJqWQUX1NgJLZNFb1ytOzSFKlzb5BaeGsQkSHr50OWfURju+BS1VRrUcR0kObRwBwOeVdIaTt5l1VQhgi1nQanHJR+qz3yxcQdKO3i3kM8AOB8I+S/7YZhtbLpwGmT3ryr0fK+KeImLHjBUmA7d4JbvWBqmzo1l1MhWGZ3mzdj15FvRUH0xyVaKpspygujHc+KSFxapqgandDUmtZX1hFjxfBW9zq5uzlO5dupxii85DzZoZBjWiqI3QVCFgf5tZ6nS/RaGIlKirAGHwavtep1txpl2wjFE3hTzHwHZToecXIMJyreJemH750nw3viKmYA5D7ELRHPWP3ZpK1tiqH/Cqek2OfEaP6F4DOmraTBzpxacleXNTks6df0rBlmL0jywm4OoaVL82DCEo3Z0dE3qQYLxAp7MPEZqd9Mscs1WuKrm0aE+Lri1fzRfXSNZ3f8hlVub35GGbg7pcH3ViAZGiwCP/4ZQ3ZK5WQtX9FEXJAgqvps/ozk+OnMSqxhAfYq7mJRjILRn5Z0F9ySPsK4QaF+bRNsmIfjDIjO63qdw4vKbvlVxX944QBr5Pns8cinXsentJhCmG8fLGDrnKaKzO92hERcQGP2U2LMpwTCQD3G0lN0p9HC4+3MX4EBSMU6oHrtxs9PAN4Zsab17dBb5Gihclqk3WTocFwddIAb0UUqyujBbWrKdFzeUvl+X9J8fK9HbjnWXKsUb0i+EedT4e8KYfhKBgmS7Y1qG87TuaThv8aUCoNXr77Lx7aJk3G8QgGo1Sx2Os55Uk/g6qzUYx87nhdfZuDJ4YTW6vBceoRa7W6j7EMYlFSYcwVGeZgMQYIQOq6JIsYs9ZnHQmZHQKhGZJmhH/CGcmMjMt9PylcX8GOczf/PDcLI6B+2nLa8jvKvxvwG01J X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08936e85-20d6-400d-21cc-08dabad27cfb X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:57:23.0796 (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: AS1P250MB0453 Subject: [FFmpeg-devel] [PATCH 16/19] avcodec/vc1dec: Return early upon error 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: led39SwUDEzA Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1dec.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 682b39083b..1cf42d831f 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -332,7 +332,7 @@ static void vc1_sprite_flush(AVCodecContext *avctx) static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) { MpegEncContext *s = &v->s; - int i, ret = AVERROR(ENOMEM); + int i, ret; int mb_height = FFALIGN(s->mb_height, 2); /* Allocate mb bitplanes */ @@ -344,31 +344,31 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) v->over_flags_plane = av_malloc (s->mb_stride * mb_height); if (!v->mv_type_mb_plane || !v->direct_mb_plane || !v->forward_mb_plane || !v->fieldtx_plane || !v->acpred_plane || !v->over_flags_plane) - goto error; + return AVERROR(ENOMEM); v->n_allocated_blks = s->mb_width + 2; v->block = av_malloc(sizeof(*v->block) * v->n_allocated_blks); v->cbp_base = av_malloc(sizeof(v->cbp_base[0]) * 3 * s->mb_stride); if (!v->block || !v->cbp_base) - goto error; + return AVERROR(ENOMEM); v->cbp = v->cbp_base + 2 * s->mb_stride; v->ttblk_base = av_malloc(sizeof(v->ttblk_base[0]) * 3 * s->mb_stride); if (!v->ttblk_base) - goto error; + return AVERROR(ENOMEM); v->ttblk = v->ttblk_base + 2 * s->mb_stride; v->is_intra_base = av_mallocz(sizeof(v->is_intra_base[0]) * 3 * s->mb_stride); if (!v->is_intra_base) - goto error; + return AVERROR(ENOMEM); v->is_intra = v->is_intra_base + 2 * s->mb_stride; v->luma_mv_base = av_mallocz(sizeof(v->luma_mv_base[0]) * 3 * s->mb_stride); if (!v->luma_mv_base) - goto error; + return AVERROR(ENOMEM); v->luma_mv = v->luma_mv_base + 2 * s->mb_stride; /* allocate block type info in that way so it could be used with s->block_index[] */ v->mb_type_base = av_malloc(s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (!v->mb_type_base) - goto error; + return AVERROR(ENOMEM); v->mb_type[0] = v->mb_type_base + s->b8_stride + 1; v->mb_type[1] = v->mb_type_base + s->b8_stride * (mb_height * 2 + 1) + s->mb_stride + 1; v->mb_type[2] = v->mb_type[1] + s->mb_stride * (mb_height + 1); @@ -376,35 +376,32 @@ static av_cold int vc1_decode_init_alloc_tables(VC1Context *v) /* allocate memory to store block level MV info */ v->blk_mv_type_base = av_mallocz( s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (!v->blk_mv_type_base) - goto error; + return AVERROR(ENOMEM); v->blk_mv_type = v->blk_mv_type_base + s->b8_stride + 1; v->mv_f_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); if (!v->mv_f_base) - goto error; + return AVERROR(ENOMEM); v->mv_f[0] = v->mv_f_base + s->b8_stride + 1; v->mv_f[1] = v->mv_f[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); v->mv_f_next_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); if (!v->mv_f_next_base) - goto error; + return AVERROR(ENOMEM); v->mv_f_next[0] = v->mv_f_next_base + s->b8_stride + 1; v->mv_f_next[1] = v->mv_f_next[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); if (s->avctx->codec_id == AV_CODEC_ID_WMV3IMAGE || s->avctx->codec_id == AV_CODEC_ID_VC1IMAGE) { for (i = 0; i < 4; i++) if (!(v->sr_rows[i >> 1][i & 1] = av_malloc(v->output_width))) - goto error; + return AVERROR(ENOMEM); } ret = ff_intrax8_common_init(s->avctx, &v->x8, s->block, s->block_last_index, s->mb_width, s->mb_height); if (ret < 0) - goto error; + return ret; return 0; - -error: - return ret; } av_cold int ff_vc1_decode_init(AVCodecContext *avctx)