From patchwork Sat Dec 11 18:40:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 32295 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp3357406iog; Sat, 11 Dec 2021 10:41:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJyOOtKCeZBBAY4vvOrqqbmdXcEmXSZ28RoEK4PnhDGFjIZ5HONZEC9xq8JRtbGrSCiTZfT+ X-Received: by 2002:aa7:c78f:: with SMTP id n15mr48021478eds.344.1639248083593; Sat, 11 Dec 2021 10:41:23 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b21si8698352edw.255.2021.12.11.10.41.23; Sat, 11 Dec 2021 10:41:23 -0800 (PST) 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=gdhup1YD; 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 A42C968AF45; Sat, 11 Dec 2021 20:40:54 +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-db8eur05olkn2035.outbound.protection.outlook.com [40.92.89.35]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 24648689BFF for ; Sat, 11 Dec 2021 20:40:51 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=km1mRAiW2urmOfooctS+nesnp3EoFxaLTmD2F+rho0t+kiCMkYes5iNrUg2N+hOKALWZ4crZahgRDVzZbDdVGVWwGCsCATkDUThlX1pM7Nj9ORHwMfY0l9EB0mnDX/3F+o1CaCWtSyBWoawEjYrQB2EHwlA7LN5x0yEzOsTqBHkzMdF/OzUxfZ6exI+AOjk+GXO9huN/FlVIAotXx21LY3o9fGHsl19pkG0/qYsaCmShqYxD2fIzBh5wUMnzlARINBfJyDRBhRN3xyI0e6IN4AmBd7o2/K7t2AOrbdc77ye2mz05mwZM10WTuIdxSjFjikbsffVp2DZKKHQIynPI3g== 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=6cnbEIT6bmjZ/r8I7yQRiWBecIVRbHRmh1B54fsadpo=; b=Z//NVTa8+LyyYUeBicaAO785ueKb8s5O7q906QhHpg4Qs+SaD7OH5xTE8YxDsiUfpl4A7okS3nzHHahukTKuhJB5ohZdS2r2x4FRvvQvQ0zauMW7ijNwkpSebNtE0zwlHb8Y79w6ey+DM53v8cEA2mX8859qmC52slTaXqy/sso7qFAndqA5mR/OkzA2QCQwG6FAxhC9T9T3FwRuJI0FsAjyP14TFWdqBzKdKEY8msCIDL/9XHKL0Z3llMAcHpLdGE7+CevkhbtVq+tnYrD9zx00lmXkEFmI8xuJGxti/NTG6DmEzwQrZdOPyT87vIu69gJenTNqL+8+pyExT88Bcw== 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=6cnbEIT6bmjZ/r8I7yQRiWBecIVRbHRmh1B54fsadpo=; b=gdhup1YDnLOz/zY+bKmuaSIJ4yl3ltdNIfrpPF8YihHROhCu1XO7IxKWVY8q9etCIEQAUMCkVQIagiasBMI3mgU3yENg4oOVXDl4MFP91MCpk7L5nSRbIw3roBf0u1JyXWqjwn7EjYKMZoBjl7KFLy97NpmWzkMr8KDlT4KdZ4HtJkAYZry2ugRZnEL8UMtn9zGQyysaBAYXVeHYGyYQobNBICutM9Csg7GP/Gi6Ipw1MPqeIEnbRw4nszJ64bJX/lHBEZy7aJjIV6VShmfKVbu1Lc7sFMb2EEDYcMs7ZyTdez69NoPEw2/eiUOSkzF7hBiI3LsO+pR6Fo4BEP+7kw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6450.eurprd03.prod.outlook.com (2603:10a6:20b:1b2::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.22; Sat, 11 Dec 2021 18:40:43 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4778.017; Sat, 11 Dec 2021 18:40:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Dec 2021 19:40:19 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [sU1tUXClKdTinDpVHn3zYQBHZ74GbnNo] X-ClientProxiedBy: AM4P190CA0008.EURP190.PROD.OUTLOOK.COM (2603:10a6:200:56::18) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211211184025.1430779-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7ec6d964-1e21-44e3-99b6-08d9bcd5bd21 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UImNawVT7mOnSn1qXfdKikYaWdhxKUqlMZAkn/RY5BTqeLiDvF4NHOHufsYXHTAj7pWDIH08qrMhm3ayOxWSDvF0HYTZnuI4lCmqX/ZBHTNgJzDcld/MWe9Hvc+xk5VMRtlSwHgYPjzcIEFaVSviehgzO3ccwfHGvZIW0aFv6za4Wgy+RZhvU9PCdsV9FmQNA2BXt/Qj7aE6ZEqlACqOxjVouasCaHmZz6Hq6LlyEaZ4eI33fcZnzLVLP+Zd6f9075V9RCcJiuZiQ0yl+Q3rTqILUBe3FDEJhNp5ywrwORKkjwgJz/VahxZN6o9oua8Z8gg0FikW/XpEnFn79XKoSG5iu7S6jP8Mw1MLPgkmXkPg6qi3oRquY/WSIYSTdvqogifhsnkWTf6Q8JJjWs45KOSau3UAfhCZfeqOMlB/m6c0aJndV2y5/br+7jy8eHo3Ey+37u1tHT6qbRGYtpfXaHWECsZdyr5drcsPni3RQAdygloTdzCaiXmVL3zsClnzTx6yJGE/XXBGnZ/WyEp5KE63KHq5PxEt9nPy/RVhWTq9GKIQ5PGlWiawoAbaTMCGrK1ZC4KK9vnnhc/Ra42pdeIgmUsTpiNQomtXPc6FC4MgDiRyaS2uIqvbIl9Y1D8yHB4BbDyto7agn5/0LKD/tBG+UBmjHVebiAWCj+KhCkaGFZRZLcd/xW/VPCsVbwuAdTgW6G389Cn0Q== X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NXES9ueOZ+0N/52S44riCSJhnVaxGfUhhYejSvBZ8ts07hG+d2ugYQctOm2wnBotyXrPL7RGPaQXESAsuuKh29/OwefJCwZ3dumsmY9Xt3p8tYHBID7NVhJ3ZA+mwAn76E0dwRllXOjQG6WVIbOSd1u/WoJHNErtpmJHqC9SFCoB6aYUHVP3IjwGgtJWflMy5njzqxLqPDNnne8tZ/tTw0a/uiLZfDWuI9cqEWySG3BjZAX+l7ohGyxd6qSVvP0Yiuouuh8m8qp/XyhDiTyvPhxw+CGSZqwvs7HKbTNfqiLiwTVCduZnPONMoEcIWLvmX5BfaeXyYkZkUGhw/J86qeqNeM4vUsOWxh/y+C6Qv+qBU8pT0wKKowbFu08mlwd0w8o3bhoKmImaIuaksdIpsPDqY+/OGlOCEen4Fdw3AHgbRmF2hJJh6VGlPNE69AWv1Q1WNyq/VlK7JjyEZFZjuLEvqzpz2tEBTHgl5Bh7YcYe/e+MGLnde6QELq2D8Y8dH9QYi9LYEQRjTvvj11OTNMG757r+UAhEy6JeEJbDuogsVC+rOLUkrlYGE8JifgpCGiDxqSVx5V0ftAXbgOKf1g== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5xXaA3249LIS11IyXjhX+rFNiXr9pibjxl5pYGxdDSRqSHYtn+pYXHU3y85sIQefWhcniMJNm//UW3rxPr81g6CQ+8benmMEUpX+CqhH6IVpkWTL5Sl0Rt5QkpvGbyMs01xQe9r0ppYuWqxFgTWTBJINoTB0/iCPQc2o67u5BN9yiYoXXHPxy4wRbt/cDiGFlX3McPSxH79rrHTOvLirXrpUv+ytV/SkCJq6mP0olrVnP/gVIm2oWU4VppylP85gpAtSfnzyR26gbtlmg34IDVPM6dlnzFTvMMfzU6ATk/ItkcQaZSYqHwQaEA/KJOAWP7L0PkSRlPccaiGGXauXCsjQPAYZkiFcP6WbNxNJ4E7lJCYLVGFqpjLilq7KMuWgZEHOoxSFAprRTJ1cYr+j6NmbHsMv3uN+zqFQY1pMwWeqvuHg78TdTj+8Sh5k0q3gDyolYmDPOjlBYGX4/8LSXgt8OJH8NtazOg9Q8IkJXVV2XhlvyILSi83j1gkzJTx4cVLql6H1W+UzZw0DudZf7hMoNGyE4/Le7RpI57Qfd5zcDxaPdP72yN6h1gS+DznAvK3egu3rjemnDBwaNwx9CwVwyZ/oiMBrkvfyDgqXTY4XL2TMStAp5LjN0WuauLnuoFbxplKnfY6ybrZY1pvsD3div8JcWUC7HSCUCPqKQequLKDfGiaV1rrKg+kr1c7BlanTmPYRiKahgLx+WmtLDo+djIkFuBC4mtrz6Xz5/k0RNTN8m3i5ovJH4bqoMPLt8Rc73jFkXus01a/ulu8BMrUn7xu3H5KIfXRm8mE2hcAxI+UDBdlyYgueCNiSZsZ92EOFxaFnAW1+/RQHWRD1nGoMhn4n8V467HKY+sEgkfEqNhe+Rvwmy8p+jMaorbZTXq2tAitPqb2/kqNxRPJs9La37rapUYxFIKyOKU+S93qjhaZn/Zk7EIU+RmHvLZfJCYuczO+jlRCVddL6q15Uow== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ec6d964-1e21-44e3-99b6-08d9bcd5bd21 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2021 18:40:43.8505 (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: AM7PR03MB6450 Subject: [FFmpeg-devel] [PATCH 06/12] avcodec/pgssubdec: Remove redundant freeing code 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: Wt0Wv8ROmhwG The caller of display_end_segment() frees the AVSubtitle on error in case ENOMEM is returned or err_recognition is set to explode, so display_end_segment() doesn't have to. Signed-off-by: Andreas Rheinhardt --- libavcodec/pgssubdec.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/libavcodec/pgssubdec.c b/libavcodec/pgssubdec.c index 2d5700a51e..d2824f5bbf 100644 --- a/libavcodec/pgssubdec.c +++ b/libavcodec/pgssubdec.c @@ -534,10 +534,8 @@ static int display_end_segment(AVCodecContext *avctx, void *data, PGSSubObject *object; sub->rects[i] = av_mallocz(sizeof(*sub->rects[0])); - if (!sub->rects[i]) { - avsubtitle_free(sub); + if (!sub->rects[i]) return AVERROR(ENOMEM); - } sub->num_rects++; sub->rects[i]->type = SUBTITLE_BITMAP; @@ -547,10 +545,8 @@ static int display_end_segment(AVCodecContext *avctx, void *data, // Missing object. Should only happen with damaged streams. av_log(avctx, AV_LOG_ERROR, "Invalid object id %d\n", ctx->presentation.objects[i].id); - if (avctx->err_recognition & AV_EF_EXPLODE) { - avsubtitle_free(sub); + if (avctx->err_recognition & AV_EF_EXPLODE) return AVERROR_INVALIDDATA; - } // Leaves rect empty with 0 width and height. continue; } @@ -569,16 +565,13 @@ static int display_end_segment(AVCodecContext *avctx, void *data, if (object->rle_remaining_len) { av_log(avctx, AV_LOG_ERROR, "RLE data length %u is %u bytes shorter than expected\n", object->rle_data_len, object->rle_remaining_len); - if (avctx->err_recognition & AV_EF_EXPLODE) { - avsubtitle_free(sub); + if (avctx->err_recognition & AV_EF_EXPLODE) return AVERROR_INVALIDDATA; - } } ret = decode_rle(avctx, sub->rects[i], object->rle, object->rle_data_len); if (ret < 0) { if ((avctx->err_recognition & AV_EF_EXPLODE) || ret == AVERROR(ENOMEM)) { - avsubtitle_free(sub); return ret; } sub->rects[i]->w = 0; @@ -589,10 +582,8 @@ static int display_end_segment(AVCodecContext *avctx, void *data, /* Allocate memory for colors */ sub->rects[i]->nb_colors = 256; sub->rects[i]->data[1] = av_mallocz(AVPALETTE_SIZE); - if (!sub->rects[i]->data[1]) { - avsubtitle_free(sub); + if (!sub->rects[i]->data[1]) return AVERROR(ENOMEM); - } if (!ctx->forced_subs_only || ctx->presentation.objects[i].composition_flag & 0x40) memcpy(sub->rects[i]->data[1], palette->clut, sub->rects[i]->nb_colors * sizeof(uint32_t));