From patchwork Fri Dec 3 20:45:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31946 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp1173672iog; Fri, 3 Dec 2021 12:46:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyGtgMIX40p9OBzxlAA8mcOL2fosmz2dXpfRnmp6VNMzAj1De0aUZCnKUIwyll+wDbS8eaY X-Received: by 2002:aa7:cd5c:: with SMTP id v28mr29559478edw.6.1638564392689; Fri, 03 Dec 2021 12:46:32 -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 y17si8125446edc.415.2021.12.03.12.46.32; Fri, 03 Dec 2021 12:46:32 -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=QbuHjEk0; 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 3AAB668AE9B; Fri, 3 Dec 2021 22:46:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075052.outbound.protection.outlook.com [40.92.75.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7602E68AE42 for ; Fri, 3 Dec 2021 22:46:11 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bc2oTndd+FeCGPOq2kWIEFo+GPm/l4fn9fKtutehwC2J5XG83VyPh3oN0kETpRz+8TqJ4gmnD7RtQDHTaLeAnPNRyB9dRc+J09zPfMzYuZYy0tuot1RKqjV5S1BfCufvV1pPY3TPHETS5KHrqiLRxtLee8C7SOrbrqN/W4z8SjOdmYb7/67G5N1tJ657klddjfVyH4AnEh4CORzm1t/bGgbMm8djpluG8Hvj3qkiNj2DyhZhKGY7ymkH4gf40/453w0lVPa7XQ3WWZXWx6xwreHVIXsgKSACudMLCuJ66aVY3TVyaGKIfOL2E+6UekQCBE5NVILg6ZOO02VDWGgtFg== 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=3gyNSHLft3qZ/rsuFOsQe7Sfxjed3neXTi3yKh5xfoU=; b=JcxNyXNNKqhj6OJp/VfwwoogFPNEHRL3V7dTy3a1FnT7IN5eV+7TU9baEcL7fCMUpIjcecCJToJbbC1sh/yDzlrR0FamYwF3yp1Uuw25SpVxd1Ce1F1Zoc0D1rPVU0juFzdm2yfLkB2SpYUNLIFBJ99K+1vSWzHEU57wwaR0u71sVpozFyIeFp1cip6ZBXUWtb1UzrS4sAUYo46clMcNbktWHnBuaQtw3BSnxKDP2Op72DozbEqrsq2BT6Lgod9b8ZchxfmZmXUb9c7rscsQ9N+LdUIoLEfjXhmZKkza90LmpdKboN6Ab69djgoVBFG9tRx5GwkHPT3PAVwSYTXn5w== 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=3gyNSHLft3qZ/rsuFOsQe7Sfxjed3neXTi3yKh5xfoU=; b=QbuHjEk0VbrBffl7+m6SNOMUDhHFjCQL9wb+wdgfakChDEEtpUqBP/0+SjlOq+3aeMjHHvlHvSAWBKo2RmpdFCOe7s9LLqlL+yBOhVbyNIS1BxjX0tSVNPw74qmL++gmii7J0QiOAxSXX0f8Yq6Jy9UBbLbX9yhBgmtRpTdibenAfL4slUpGriPxeOLha2d8MlSuykwatDKZ+gIij1TPMcHANVAdEGdI3l9YZWSJXKzNvXpq6W9Hi+t9juCR7nFPIBqSTjubuBJB2Z1ZYPqPBqTDwj0ezfn+rqyqCTgBdGt6kCpId4I1BGJV/MLgJiehwd1WX/PJs+GqeK6dK/75UA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3831.eurprd03.prod.outlook.com (2603:10a6:20b:17::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4734.23; Fri, 3 Dec 2021 20:46:10 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%4]) with mapi id 15.20.4755.019; Fri, 3 Dec 2021 20:46:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 3 Dec 2021 21:45:48 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [kilT/CIJzHWkyl0lYccuhSDYu+nvtyIg] X-ClientProxiedBy: AM5PR0301CA0023.eurprd03.prod.outlook.com (2603:10a6:206:14::36) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211203204548.2005738-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.248.74) by AM5PR0301CA0023.eurprd03.prod.outlook.com (2603:10a6:206:14::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Fri, 3 Dec 2021 20:46:10 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5b0e899b-95c2-40dd-e572-08d9b69df01e X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQtx8w+3h2yNIIsmVb5543q8ijmTa9I306ABzV80yHbg6rUjIfqYKMRMwa7VKVDmS5MgoPinG1tzIHwF2iF3BWmD93ZQSYdPemvguJgHrXk71E/uG8DTM9E2odwHNmTp8lhDajX536lygGrM32zXGx2YmnjDrQkF4N5mbSI3qeki4GSUQN2E2QOnJWQ2pUZpoIte65lEQKJI5NzyhgwvEU691Kan9G8iwePPUmbwRHEV7suXVlGIKCNEhNIR4UpTJDLgOVb80A90sqAAt1+w1+v5HDokjSBqHdAphJbd5zTDTlLSZrEEla/VroTiAXU0z1xdaUFno4mjI/W8OVO+1CL9RZazWrfRBi0rqUDRakuQ/F2Bf0rYyCrXmNSGyIV4PQ3JCrJm6eDFDBCgBYVtrFmWBj8t2j1S14R+3zkQZfSlBqLrRxfF/3ixFfwaGkE43arinbXZscYa7Avk1094ZMcoWffL5wX3EVy7FnH1aiatdwZYo21lh7l6gXISSV4967kXKqnGAn9uwx0PuxbOyBKBpQNFe1+K5iMcFhD06gA08xTCddKgPATf0QJAyuNMTSyQfvwkrIgJLUwp7kfZLw397S3paysMAbd0+N5BHv82G5tCoh0AZYjnNKb8c1FFjs6V4m/+9yCSjqoU2kNs9YIMaohMFuvBu0iYrCTKWouGaZwrhzkiTrxyEK+SiRlbBH14fR+qnyo5obio01GAUEKZhZQDZIgkuvYoRmyEIavvUjuJ15Pw6UohCNmtP8Q6yM= X-MS-TrafficTypeDiagnostic: AM6PR03MB3831: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TJZunDR9YtdhzK79qcvI8LIImFHlxy92o3pmWhCDc0p0tyOj547r22t0aqLfm2bcn8BnXo3e8nsWHLamKLyMphj00VrTQsLWISTnyBLZe/itRV/7hQQS+2q0dSIj0vRyzeUBFy/o4r1ibWVlshsY9p7gQgUUfe9BhvHxD2bqQqM0gBvb4wJ662qyOfPg+oKPZkOeFdYUamCJdvIzYgEquy8kHBnJ6TdC8dQKw7qaVjJTapg/eD3MwNbO71g6SednzwL5p54fjTtD+p+3rp7uHEt2lrQkBmOJHawd9AE5JI/g8L35YIF7d6LuRVEWpQLph7By1TQye9b8xn+lFFPhKGwye2KBc7Cj4TL5rM+ynqdJ02ZxeRgDEF2I6v65Q8XvvaLVYZsi4hLpAIKkLv11wMLwZ+RKmdFTvr6jxlx/xEpRKy5g8l5azCbwMA3vhjN+WXIJAj4QmLv+x/Dg0MxW9w3edIYugnHqmDVjQISDrh21PnlVyDOiEvWn8bS0j87V8bba6cX/IVceP7hTkbvB9/4ybcKLD+50G2DSAHjNz1+aDt+eDyE+bOcd2jRUjm2kTpA0XAUy1g5oPtVXGzKnFg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MmalUbO+deEzuvTRlkVSb98FekCHFHp7joa1tO8d8jfHNLQkWmpikchcCmyUG6gIWfPj6nMiLfyY5QkBbg2zO/yR0tKgQAdA/Onx/WeZu+Ygs7GzyIUAKaGVkgqdZIZ4nsO6GrTXcwJDEtYZHN/ejLHSwLnVGbUxfzNm8pYlIPTC+HDnffGmf/3/eyI0gVbVVMlw6oxTg63EIR8ZgM62A7PfBe+NmBW1KaocJbuVyZjVpsw+ORnWSyCIHqpHaYnRLx2td+MViRGZPbMghwe1zAAHnRm2rNZIP8JKjUgl29pFkH6RMQ1n1CR08f2utSZXMtFSiNouocozhyXqbUs1uk5JqnD0I0dJa+DfGsuI7gUJ2TsQM9zO+kB4sg45RnXC09SWCboHDQMaYObWrlmvQbdrBwgnG49nVcMHWVKyaQGT3Iwl6b1lKTeOsH+vcm9sATyY3LeJS19+3GNN2XJxt/3FFDekCk0ZGEHYkhSQ3QrgeThsswovZXhWaXGHQmtKoeiEV93SYfu6TibmxxwSvJMAcGA7Cy8yXd7spijxEnaQUklacHPiXfFsUJscYcHpfAYzQfvv4uGOS8+rOLSdPGRaQbb5PouXrAmSbvIKFP9UD1kHpwyjX9K0KlJVrBhROnLN70ed6GHbBRBgXs5yAygUUfVNkSawsO2IyNyFzq+Thvd/vkWgF3ZeeY1YxOEtRUaey6oef1UzfR12KQ6pJFh6jok55vHjVF9Hiq/ZoEIXgt2Pz5H7jULPyeZoA/pMv4q8HaFVvgvLk6kpZSLPpErNgMb3owVXyCy1y54CcLWtClMhYHwVA7/1baO6+XKPZp0n77fZQjQ6xSbzVqAUGXCXRopyPzV3z5coKGbyMvBbV13OXKM7s0itWZYYaIGZXVhBZ896EHnTC5y8aslW3Ckwch3YHtWWeedsd1sYVWODC8WpqEMt2U8ZcUtlLf7K5D7GURV58pU5HsYhyfTndw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b0e899b-95c2-40dd-e572-08d9b69df01e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2021 20:46:10.6188 (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: AM6PR03MB3831 Subject: [FFmpeg-devel] [PATCH 7/7] avutil/frame: Treat frame as uninitialized in get_frame_defaults() 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: H2PtTkAeYZIG Currently, it also tests whether extended_data points to something different than the AVFrame's data array and frees extended_data if it is different. Yet this is only necessary for one of its three callers, namely av_frame_unref(); meanwhile the other two callers took measures to avoid this (or rather, to make it to an av_free(NULL)). This commit moves this chunk to av_frame_unref() (so that get_frame_defaults() now treats its input as uninitialized) and removes the now superfluous code in the other two callers. Signed-off-by: Andreas Rheinhardt --- No code actually tests the scenario in which data != extended_data. Of the 7984267 calls to get_frame_defaults() during FATE, 2784297 freed the extended_data, but in all these scenarios (which all came from av_frame_alloc() and av_frame_move_ref()) extended_data was NULL. libavutil/frame.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavutil/frame.c b/libavutil/frame.c index d4d3ad6988..95bdc0be72 100644 --- a/libavutil/frame.c +++ b/libavutil/frame.c @@ -52,9 +52,6 @@ const char *av_get_colorspace_name(enum AVColorSpace val) #endif static void get_frame_defaults(AVFrame *frame) { - if (frame->extended_data != frame->data) - av_freep(&frame->extended_data); - memset(frame, 0, sizeof(*frame)); frame->pts = @@ -98,12 +95,11 @@ static void wipe_side_data(AVFrame *frame) AVFrame *av_frame_alloc(void) { - AVFrame *frame = av_mallocz(sizeof(*frame)); + AVFrame *frame = av_malloc(sizeof(*frame)); if (!frame) return NULL; - frame->extended_data = NULL; get_frame_defaults(frame); return frame; @@ -455,6 +451,9 @@ void av_frame_unref(AVFrame *frame) av_buffer_unref(&frame->opaque_ref); av_buffer_unref(&frame->private_ref); + if (frame->extended_data != frame->data) + av_freep(&frame->extended_data); + get_frame_defaults(frame); } @@ -466,7 +465,6 @@ void av_frame_move_ref(AVFrame *dst, AVFrame *src) *dst = *src; if (src->extended_data == src->data) dst->extended_data = dst->data; - memset(src, 0, sizeof(*src)); get_frame_defaults(src); }