From patchwork Sat Dec 11 18:40:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 32298 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp3357986iog; Sat, 11 Dec 2021 10:42:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7RyvHllNOCcFHtBX42//ssdSl/1LwDkd7gTqV+o3um3MSNlTmFyYfutCBg8ccoOToG/Og X-Received: by 2002:a17:907:7d86:: with SMTP id oz6mr32571887ejc.312.1639248125851; Sat, 11 Dec 2021 10:42:05 -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 u19si9495030edo.386.2021.12.11.10.42.05; Sat, 11 Dec 2021 10:42:05 -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=UlZH1e0z; 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 9DCCE680113; Sat, 11 Dec 2021 20:41:08 +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-db8eur05olkn2014.outbound.protection.outlook.com [40.92.89.14]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3398680113 for ; Sat, 11 Dec 2021 20:41:06 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZCwyM/A4I4LXopYoqyxiayAcywW6Xm9uRwKFp/XKuCQJtQvtPhQPESM4XR6PHb+BUENbVoScPb/UvE881zuA94QmlNGVBKgl0FVIoujg6hehaLGOL0zISDl3JqJ2JuDZT+SJ8L85g7UMRfY8x1VxxQYuzFAgE8ze+CNAa55uqOnWS4sYx6O8d8/NP7jBTzxkkx5mJRGHrMUck63dJfYFNbDCG3wRpahBNGlbCXxjd8tCE8tZDN7sdXQ0iD7pyYomA6+1yBsqUgyfN7rOIW4ibE/UIjjumqoJq8fKpTw4bJH1pxsKP2omOaWHhGabqhvBrmiV271Q+XeLcwCHV/TtIw== 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=n/U1N/ddZV/PsMpg9KqsIXgl7CISAqQjHIVCl4iH8eY=; b=cU2PT0qoiKJpX6mfFfky2VYe07AZW9h3asupFlWxQlu8QBvy92WJzS9eGnq8V5uTLBcbyD1ZzXR14Wq/eKCaDo52WITHpRFd9W5+jOkCVpWMuSwK7YjscgM5sM+wKbXu8Cas8x/yzyXaKr8boBLZVDjQdpk4FLS3jSL/WKDOzyMN5VzgvG4M97aNTbivPwNq01jp5Gq2qLFg/16ZXE3KfSvKoSRowcs7DyGp/7j4iLg8GW3e8yKID65/XqWZv6j7WbSyRXwGul5xAfmtY53PEi0flfu7r5o6TA/TeRbI7RTgKOJraqtz6T7sfMnhzyOdj08e7ueFspr2C9m0+LJVVg== 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=n/U1N/ddZV/PsMpg9KqsIXgl7CISAqQjHIVCl4iH8eY=; b=UlZH1e0ziABawRUsGQxn4HfjdlhBCYya3dmuDTtGx/UPRK7BwXAR9C/7rgPrlJxJgVcLGKAaTDZ1+DyYRgzQ9cKihe5kBFhSXaFluXW2QLdCOEhbF2oRc2cdzzmumJkFtFXdmv+ztQEXSbpfoogyL81OZHvfOQU3Vbi89vxwgPtzkyi+YSvHQlx2fecXVkBvKlmM+HQmZjkPq7hyjnoFPB8gQVsx8HJEtoA6xn4MkZ97wt2lO6x3uw6mwPLAZLkoDhn10e/QoFekLgyX36+qJzB/xVKNEw31k5yb5bBa2igxbPXfL5hvFD1g1E5Z+s4Gqgnv77dDQL1pvX9taCrKXw== 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:41:05 +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:41:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Dec 2021 19:40:23 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [z3ZRkBEEBNUM693uHxFL4DszqmEC85Wg] 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-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0f8f6caa-8b10-4ed1-28ce-08d9bcd5ca14 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWxJUMtMcNsrGqEGMDh6H/uEKDLLKB0RbbNPHCoW6n8KRwtSnyyns/1SJz7LBleqsi8onyLxYUTJh3sNg1h+zkiWT+kWheqlzcgGCr288jO0UclXeuzfU/b4ppbqUpag3rXlZYgqtt30NjC4jxcmUk5Sde5K+C/XCjKKKyYeVb8XCzye34xcbo4x+InutX/IDRAy+Rd8U7pNJdxEYUWaWsnYc9mMXfIyJHjISfAS/mKVsZ9CBOJAY4BHUJ1i3Uy2yo0bLslrP2gghrqR2kvWYNFG5lsc439zi4RREea0reaNqGNl9JSJbUljmKEnOeLYQ2+gj1Qtcd7FkZ7ZBVRxBcSf8HV21eez3os8ex6pWTz6Ktdig5rqTuoRduYx06BuA6OB4flKm2JWqnWAYJYfKp7YY1B17/brS8MwL13qnNQgy5WKMCEBWKVJhbW3dQzLr0vo5jC6rvF1cVruHdryNNv+VeK27qpX6+BKcevR8BY2i5IVYRk7UAqAPKlgLqPDzK7gFgfJ0X/z2shpPB8waUn2wxxF3imV05S6XpdcL/0991FS3LTV9fflSm+JDBp/OAQLq1cbJB9SfG8jyISxxllW5UAMvbXBDurW2TP5SyKGZyzsuTfa9gLB1YpJnMj47icyqCR9Cmg2V/Pz+Yni0wZksf420uzeNfT997x4UTAPzLeLLoB6I8dK5rlHJBqDRLZrX7lPqlI3LsngOH/wx3VvvPeTtLf/Is= X-MS-TrafficTypeDiagnostic: AM7PR03MB6450:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s8nMiyb7QlZh9hrWjoJia4m1mxODcZQ9GuRcRKzBEKmmiTSf0cexYoi8la7Ik6597M9W8zmKxk+8QHDuEePyxt5V4sr/LlPOPzyIord5SkSGA6xHlQdP0WjsefnHMB0YmLdTV1Zbk1SAGT/icFT/wV6HWmyH2T0l3y3vjfE2w9jYOaK1CU8lBnb8eYeWSNj4PBDZHHedsHwf8PVtXRcIlU8kmqO1NssZntF9OFCJsDPgR2typVW4ooN2v/nE0Q/X45sC5AT0xM8B0ribzFx2IqImAcln5ERUTMFjaGDzPfcfwogMqr6wa/yPcJ0AMIpm3+7M6qNxp5wEUWsdQ8n+xy0E3Xn4WkUHLRhdDd9BzOKVOrJPkFVZ44kgsvnhghppxp7OQRC7t0XD+GpCPutJK4xQ0IDKQUwasiDxdKWOcsF9T/GgqI3AjV9jkfYzvoCwNCIdpRfG/W2AHUtn05B1HpRPHHsLpKfvJBXNdN7fwaG7hoh2gl24ZiffuSTi2WTwL4xtIePNMDToX/MZc/Nq4wXfoU9QLrExuh0dKEdCtHvXpCeciADXcNP3YGhvzzlV07amzCcjF5dumHaO/86tYg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sd09vtk7Brp7XKSIJ3BfQWSp0gUlR5MOFICTbLFJRikiwFpDdAZ2jnFHAgYT2CY4oEA0u/5Gf28iKiwuDXECLrLG3Reb2SjWqmHuFMFYbVzs5VcDxQ993m+Z5JMa9DOOB4PFkQlY7mc1hQCY+Vg3IftGxD10qykUtRc0Nn1l3k0e2OlgCio1uTKvQZ9nX6Vriqhn3uFyDGIiGg5FhMYdtVkLqfZBVmQ1rwqL3eM8141oNaOwBqNpdqYAN7zxlzcaMH4/93WhUqPn5/w0mov64rFLDIDs1cMU9mDKpfxGweklYqejNssLHFIQfNi9obVP02Si8LSKMVGPimgmEvmEeC9xBFDGN9BkFPKXKhJxQ8EJLX0af9qvoR+JHVr6IolI1yBNpXFe63j1d6HQwhdpKhewvkCir0CUOcIprBqMMGI2vQwSN3QIIFCxoSzPtvqycl1GLc2QGUrRkG4U0tySpN0ro+aXFj2KgoDsLhx9Sb4M1F7x5BpU0CdryGLTDE4XozP4KXmtKsWzTrMKpa1Hx7hs3vhROe7mG8LLbJqDA6v1ZlQ+HbnxBHU8fXimXmHn4FY1pv8Z/D7jmrgBSFzZ0a9Vz2Rin2ls1wRFpOFg7G7JTWHMmHQZsmLh2m9x852EPkC3KPRrPYVvImH+fx2Rxxp/MkfR/P3UR0a6oc2e6sgUovsalRpmMsrSiAwpEiDcXOQInZPYs5c9YCX/MyYkMRXwQRLzynswQedF1L5cry3lEj/ekFtEG1XF69iRzinx/ceTVYnLyv70JsgE5XEbI7WwBnQi/2OYEQ6Ff8nMDWTeXZIJL3Pt4/zUlman0uojgXglDFm1lUiVGAZWM6D8Vb4RTSUgyONd0cU0VWqGJLNniDKtemWtA9Dt7f5d5a64EWi2NEX1dHTc4GP7hT9SK0zSVlzwhHli2jxwgqZv7ScHVTH6yTDK/em/8LTVAkHDFKn4UVGIYDFSmZitg9hz2g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0f8f6caa-8b10-4ed1-28ce-08d9bcd5ca14 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:41:05.5885 (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 10/12] avcodec/xsubdec: Cleanup generically upon allocation 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: EgTU/v8oPe8K This is possible by incrementing the counter of allocated rects directly after said allocation succeeded. Signed-off-by: Andreas Rheinhardt --- libavcodec/xsubdec.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/libavcodec/xsubdec.c b/libavcodec/xsubdec.c index 979399bae6..b483699d0a 100644 --- a/libavcodec/xsubdec.c +++ b/libavcodec/xsubdec.c @@ -101,10 +101,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, return AVERROR(ENOMEM); sub->rects[0] = av_mallocz(sizeof(*sub->rects[0])); - if (!sub->rects[0]) { - av_freep(&sub->rects); + if (!sub->rects[0]) return AVERROR(ENOMEM); - } + sub->num_rects = 1; sub->rects[0]->x = x; sub->rects[0]->y = y; sub->rects[0]->w = w; sub->rects[0]->h = h; sub->rects[0]->type = SUBTITLE_BITMAP; @@ -112,14 +111,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, sub->rects[0]->data[0] = av_malloc(w * h); sub->rects[0]->nb_colors = 4; sub->rects[0]->data[1] = av_mallocz(AVPALETTE_SIZE); - if (!sub->rects[0]->data[0] || !sub->rects[0]->data[1]) { - av_freep(&sub->rects[0]->data[1]); - av_freep(&sub->rects[0]->data[0]); - av_freep(&sub->rects[0]); - av_freep(&sub->rects); + if (!sub->rects[0]->data[0] || !sub->rects[0]->data[1]) return AVERROR(ENOMEM); - } - sub->num_rects = 1; // read palette for (i = 0; i < sub->rects[0]->nb_colors; i++)