From patchwork Thu Jun 30 22:29:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 36575 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp621734pzh; Thu, 30 Jun 2022 15:33:08 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vkaKeD068uWmN7MndnYvALB9nYKgFNHCG3sN1vVwV5MnTw/CYk96ajq+zmkLsE2r5BrFKD X-Received: by 2002:a05:6402:3808:b0:435:5a6c:9dd9 with SMTP id es8-20020a056402380800b004355a6c9dd9mr14710942edb.368.1656628388814; Thu, 30 Jun 2022 15:33: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 fy12-20020a1709069f0c00b0072641df5423si5093590ejc.868.2022.06.30.15.33.08; Thu, 30 Jun 2022 15:33: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=SXpcBEwo; 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 9C4F968B840; Fri, 1 Jul 2022 01:31:03 +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-am6eur05olkn2023.outbound.protection.outlook.com [40.92.91.23]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 85D7968B844 for ; Fri, 1 Jul 2022 01:31:01 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a3RY/Q1JPcXU0Zq6rfIZqFk+HkpLLKk5opaSNrw+HAVg6swBRakEPjxhL+N79k7FbN9BqmfSXKc9jR9H6SlaHR89C1fHpQhxnSo9OTymyvJzIv3IOFnOEjy6NdIs+Om8s+B0535Ht6KVxBsTLX6HnPHyx6bTmn3e8uzdJy8RTBJu461pUBf+AnkZkvw1XMQELqh25vQpRgjH2opyan7yMd3Hy+DeG9b7nCiVvCpf6T4yqRj0G6WK/a+Vgk63YUseWAVHGstd96tWAjn0uCA/owvUZZ4Wbujwj3usMWaTbkqFQtfxJKnoUUirb2xLOCCWUKTlFpRa+owzJ63XO9AM3Q== 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=RisBzPndG6un2Vv8SYCDf3Tf7Xy571WxYGLTy05+dKw=; b=bCAVDmrg2qj4yquULxTRwj1p7BNtDE1+Pin3wYk5wOscHqTPn6WxNYXX5HtwyNifmyNLpxv3pakn8sNZRWSRI7PPONCeoH1LqCJC1V6VgyHa9dF1gxi9IwKZIoialBFClH4R4FGCOY7LAUyFEbRWrT+bzg1kgLBU3epV6Ilr6TqhjtCa0356Wz0RE5aoCsOmUMPQ1BC4jxk/KOVwd0y2EPD4Mqy3NELGN9+nB0sQl1R0si3PPfRQW7PdT8hgZZklL4ZPHIapOdkuu0IsOsSkGUt0sGs7/a+7YVonAZLMfH/NUxpcXdhCUFgxPad8upOdLaEIZrYKPMMsAKw8j18trA== 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=RisBzPndG6un2Vv8SYCDf3Tf7Xy571WxYGLTy05+dKw=; b=SXpcBEwos9xeJdg9h0kQmkrjyLe+K5tuFNifjrPAPNfNRkItcH7sHe76/D03GLYurlNlUYFFpvAPTGWC4Ma6w/AUFou2370NCXF0BlYt83A+Vvfh+KIFwV9Zy5ZIg8+Cb7ufZ2i24vfx9jLKgwdcxuXUsN0UzMoTQ6qz8xCyDORn+88koXRD+lIBa9/3URkkpF/k67oSzt+gwf16ZEQeF8u3YroUrgQCsD2at+B+SBNKh3mxUcikpIlfJn3io5iK40/N1UvE4zV6SVCmMweJVgJG1WcbOWyn4VZi637elPI+7R24lt79w4QYwZv7RpzI8uHLCOr4+D2xG8w0pIxaag== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB3PR0102MB3546.eurprd01.prod.exchangelabs.com (2603:10a6:8:d::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Thu, 30 Jun 2022 22:31:00 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5373.018; Thu, 30 Jun 2022 22:31:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Jul 2022 00:29:49 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Fx29LO3Sz4zNjSbc3Iq2u7xVwveQ6ABh] X-ClientProxiedBy: FR0P281CA0099.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::17) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220630222949.1758625-17-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 50590405-b4b4-407e-0cdd-08da5ae83559 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIsx7KfB5fXwX9/lr2btQgAGxVon1TX1GDB4a8MdTSSaG1BX7QHykUn0Eb7cFcEETYFGB637R2HqgABhzlN6bgldgSJvcAbNRkrXEWCuvMk3YIoQOPkEVwyyMRma6vdoG0tM/FblHsgIpNniSIxM6f3C2xGjgDSoxO3wVcBEh0fdLPpVW8fVtl3DQYtGCDvDRnKKG0xX4iKSzOFR0cpLvgPde/TuHT7UShOZ0KtknULPTyuY5TlZFE61+4Ck85JYaUPNhCJq2WYhEOC7PzWJUl7ty9LVKqWdi5m3u2HhQOTxIqErxO/ypz8femb4rTG7UHsU44CI9eGfcFxRp5lVdTBvw/oQ62PqPhlv1hUCbIE5vwWM5Ej2NOgOvWu0gTBVeTA9UxDYxYFS9eKDUz954eKcLsZrFqda6JXgDCMmfAMyZqr9ExoD8zMw6U5KxioekyZVTEemP98NFDCH4W7+A5ObYYbtPo+FXtvBP8jJruOV5PgkccWN1agBIudq0kFaVvPc11lFWjy7stvSvJxXF113q0Ifzma/IUZVaQXvJtlVjYQm6L2towgWcGKYUK4O5XygSeCRYXYQPIH0y4AjF4HtVIzKluUQ6nLIjstS4ZkpoZrszoFJY+IbPhp73VMXYk/ZwwQt2YPqh4fovJGNwZI7tSf+LhKlUJxQfoqy0UG+vSlFybOkro6fRuAN2ir/y7/jI+mBjBuBQ== X-MS-TrafficTypeDiagnostic: DB3PR0102MB3546:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iBb+kmmR7yPhHjh+OI0hp06wn35AKe7FxnkSMefHzCYmGvqrlg4AxnUnlCdlYZH+mC//iHc26KWd4k7uEv8bJfeRvK2/GyngWLElcS3T3WkEUgqH3K1BfnLS5KcsX8pCTTo3WpkwmBIqrayRwGdhxS/ecxm3Bae+lmbqCtoR/GKSJEcZDMBNL1obQfT+hSL/7iS6zVfPtzTFc7Z6WeEDzMVZe/2nbKUa8MzENDxhCJhoIU3mLIEywxRWSKGeAN6gnu91BCSB4Vf+NwYW2CXheuB7Be9rwUHasdJ7ULKWxdGYpjO8lsgsWJy+re12eo9YUcQ/M6csFtY91ihKnn+UyQQpIR8D//CmHeZXtyNsjOFl5ajM/6EuyxMnjLuiWDHIAkPp3xMj0x6nbEIFxjYK1KAfTKJjRN7ISPHxwaHkcfi8xeVD31WvRLhb4WV/bNwvcLUkY5YZMPbc7aKgD2yiADj99FLdilILUcwqxAIVB+UOOlcMeoHbDnUkSF9m01eB+AdatVEk+aJMUdrRE2WFtOCVNUGJjhER3WzYIlxv9rjKkWdo2YjACbgpHYCDXJN2Y8nuw3zYKL1ttU8Zgt7AeMyXK67cYYCCW5U1+H6WmhTYD9Q4ic8dhTk/LkuEyfVOF60K0sICh8eHn2QZkMPvS9k7uR4IM3plm//lJz0PiiED7+Fmp9Y9a3AkQu4u57Y1JR5Dex3rEdXEFoYvSMwqfw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AiUepQmsfPsXJQwpa7L1CiWPvxdUW2qhlgf9gRjlQQt7SQwreDrl5wJ408R1RofbIhFlIuVIP0Ufk1Pb8NdQr3rBM3Czc4QMUy536bxxL3zZpRLaeLvbJLacYFwh4JXAdVqcvN0+QU6kp54b3LrhMQSkMEsPI3WCd0kysRo/msVmO4Hh4jZgKaLUPlwWLcNPmaSQRWJlBR2Ee1u54lNK0m+k5YSOj6cbC3nO5xwc8RtRW9ANiBwFAXZhlcQjbuHcUxmuAGteZy0y0TX80UoxoFZ1VOmdAV8hu6181fD6BR1+cOXDu/ZYWSi2dbAxxxgX7G1fvgoQxyZAjgCaKjyb44Rbj0t0CPBrx6T1keGNkZeVjgHN+7Fs3IrNp0iGrxWE0okMe9uhwyRlLlO42qzVryjA/TJfGkxK89PWuR/QV3jN8AF9mZxN8YAatwVxfQ0DZNrdEM7RJHVHWHn4w1Ke8IdZjay705DRwgKFVV0ZQYzknRrg/MQ1KGMkQsiDxiwbN1CJreFgsCRdVg7g3eSC74tfu2I6atEdYKz4azNgghaGqr07pFB8WbIXcJnH7l2TfMHYpGXbpwhbSrRLpJ2Jg2a92Z99GwNxYl6e6nUebG0G98YuD5R8dpT2Ohk1QNbI367KF5yXcMdRs+AF9fRV9ntjZuLvenqkZGnLD0PlnjoYWH01n7tkc5rLH1VeIGFnMBMSbLCenYjdbTMwzbNqf9EByIMwOfiSMnpXRwVT2hT6o7OgePaS2rkdxlArMosHs1IOtXuT2dWt6ChfLNVidVjlHGauXEyZ5TNUpfZWvSB+tMbln18dEZUeEXtHrwoElyxJWty7eRDq4tBhaDIMxGHF2zTjV8STS7Ia8eFVswl5FPtJO+yxwdR70J6r3hcchstOmsr0zbqVXE4IiWXzY4/eoL6QL7ym+g/xVCHltJKJ2nMxsLYIxKkI+JkF91n2ED7/2LftKivakv6zC5fziwfjUUsoblaDcxZngePCEKJM7OekI3GiF1ZTZ+VguE/V/vWGBB/CF4+n+xBmiifg7pEQWuj2lvqjk7ncqkH9o3a3W25ftxuEk7GMT/L9r398qSKz+28cERUU4ICixEwhm1kmQJRv38Xwf6jWS8y/rklsMs2o3QGZDPms9EkqpB757Sb5gx5iqZ6d2zt+Ca9213TM86yevdIb/cc3IW47wATbwCliIZKNajNnmR9nQBKfdDKgnMplDDKhg7vwLNUqGedWbA5fU8KFC3hLjHyi2lMXJiJNjJCsqEbOcPcrUWX1r+PsbVGbCMpeX7vN+ZFMYh8PzR58I5OqgMJ/lHw3Mm8= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50590405-b4b4-407e-0cdd-08da5ae83559 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2022 22:31:00.2943 (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: DB3PR0102MB3546 Subject: [FFmpeg-devel] [PATCH 18/18] avcodec/hevcdec: Move allocation after error checks 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: t1qqphWghoJc While just at it, also use av_calloc() instead of zeroing the array ourselves in a loop. Signed-off-by: Andreas Rheinhardt --- libavcodec/hevcdec.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index e2568c04c0..c61ae49be1 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -2628,31 +2628,25 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) const uint8_t *data = nal->data; int length = nal->size; HEVCLocalContext *lc = s->HEVClc; - int *ret = av_malloc_array(s->sh.num_entry_point_offsets + 1, sizeof(int)); + int *ret; int64_t offset; int64_t startheader, cmpt = 0; int i, j, res = 0; - if (!ret) - return AVERROR(ENOMEM); - if (s->sh.slice_ctb_addr_rs + s->sh.num_entry_point_offsets * s->ps.sps->ctb_width >= s->ps.sps->ctb_width * s->ps.sps->ctb_height) { av_log(s->avctx, AV_LOG_ERROR, "WPP ctb addresses are wrong (%d %d %d %d)\n", s->sh.slice_ctb_addr_rs, s->sh.num_entry_point_offsets, s->ps.sps->ctb_width, s->ps.sps->ctb_height ); - res = AVERROR_INVALIDDATA; - goto error; + return AVERROR_INVALIDDATA; } for (i = 1; i < s->threads_number; i++) { if (s->HEVClcList[i]) continue; s->HEVClcList[i] = av_mallocz(sizeof(HEVCLocalContext)); - if (!s->HEVClcList[i]) { - res = AVERROR(ENOMEM); - goto error; - } + if (!s->HEVClcList[i]) + return AVERROR(ENOMEM); s->HEVClcList[i]->logctx = s->avctx; s->HEVClcList[i]->parent = s; } @@ -2683,8 +2677,7 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) offset += s->sh.entry_point_offset[s->sh.num_entry_point_offsets - 1] - cmpt; if (length < offset) { av_log(s->avctx, AV_LOG_ERROR, "entry_point_offset table is corrupted\n"); - res = AVERROR_INVALIDDATA; - goto error; + return AVERROR_INVALIDDATA; } s->sh.size[s->sh.num_entry_point_offsets - 1] = length - offset; s->sh.offset[s->sh.num_entry_point_offsets - 1] = offset; @@ -2700,18 +2693,18 @@ static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) atomic_store(&s->wpp_err, 0); res = ff_slice_thread_allocz_entries(s->avctx, s->sh.num_entry_point_offsets + 1); if (res < 0) - goto error; + return res; - for (i = 0; i <= s->sh.num_entry_point_offsets; i++) { - ret[i] = 0; - } + ret = av_calloc(s->sh.num_entry_point_offsets + 1, sizeof(*ret)); + if (!ret) + return AVERROR(ENOMEM); if (s->ps.pps->entropy_coding_sync_enabled_flag) s->avctx->execute2(s->avctx, hls_decode_entry_wpp, s->HEVClcList, ret, s->sh.num_entry_point_offsets + 1); for (i = 0; i <= s->sh.num_entry_point_offsets; i++) res += ret[i]; -error: + av_free(ret); return res; }