From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 1E78249A6C for ; Mon, 26 Feb 2024 22:14:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9ADE468C8FB; Tue, 27 Feb 2024 00:14:08 +0200 (EET) Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2087.outbound.protection.outlook.com [40.92.59.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 393D668C462 for ; Tue, 27 Feb 2024 00:14:01 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NxjL3S54xzubsL37nYKI7SuyqZTTIWdUjwalE6KlEofKA1/8fRLZgbf8c/Q8MG7RuIrzRtzCjGy9ctgesMi+WOoUV9YUcRUi8B1df2SW4LzxPeOrMfjHjoz1GcVvzvyOYRXwYksMOqyv8fdusOw9h4pteBu7cLAQ+OJ6+BL01nmo7U/SMi8J1nlLLQUJW9I4AB9S1I8OnPFLIjhzo1j21yEPB2mH2S/7f2wIHv4DVfxSvFYpMjdQVJhgG655T/CGKAzge8TiyE5DmAuU//OnKaUBPs79PRkJIk9YNTZbYPIYH86MUjLstnv91lix29lr7esDYzaf5yuIYBdDZ7dc7A== 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=YnRq6EcP7nlQ4+5uLW1s01l0zAfQmMxp206vsxyLNBQ=; b=XKrbaIYYIQ+ddUuApFCl7F8MvdvPBGXeWMVPhQD8neJkExvQXpGU4anhLsEpWKuhvBOuVjckNF9uQ75XvqQKUBP+n4idTfisxtiYYXsAmrOBIC9NIK/F5Lbq0/N/hRJlzwrHAJjyjrQPTjl5X55cbWLtgq/FDwiGgNU34N21kwtSD76t6/6hV3gk0V0UO3lj3F5/DzXIZAu8rNWl0AYBR3yr8saWIbzAG1Ow9TmSHPKGXERqxmyPp+1QwrD35qYQy1Wv8db5ru603bzvVvGn0n6tptR2FMwgSdaoTEZkCUF9iNB9RaCsX9fCySyb0DTzvFzxoaMNJ64A+JeAdv+pdw== 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=YnRq6EcP7nlQ4+5uLW1s01l0zAfQmMxp206vsxyLNBQ=; b=l+is0AtPmUvLAg7YIo9GRUgCpVv6k6tGUKvddkClDmJuPBxUq9Y0wo62d1b1OIdSVk7IO567E04JJReFHX3jOba+pSx/JasaVX4Q1ULXp6PCLJ6pBV8dMc6LjhW8LJ5KJMGjWtfRqAa8LrPTI28JvVLD3ZXAtONjHtBud7O2HPKYmuSGvoObxsiSDs9JhsE/f2UbHNOg9NwswkEOUtCErwF8PVd1LFlgw3p6+qvMwIEp79rB3FfQyVLXfsJeIYjeBLO5CkbV6fGXhSd+MIfAsuukOQWqTBPjD+kH19kfLDEunvsQC6fkdXccj7lovsKBQ4T8PDXKGutx89Z0rsJimA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0200.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:327::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.36; Mon, 26 Feb 2024 22:14:00 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7316.023; Mon, 26 Feb 2024 22:14:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Feb 2024 23:15:50 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [gQ3AwdLclvORTvBB0p2CVAnEprRQLM/IG2mxvh76dO0=] X-ClientProxiedBy: ZR0P278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::13) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240226221550.384722-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0200:EE_ X-MS-Office365-Filtering-Correlation-Id: 85ee07ec-601a-41b4-3fc4-08dc37183b9d X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnoQWGgFdnk/XrL0kWZR7YPnvc4RKZxWuVBxEpDNeQ66TKAs+2aVH2dpRsm9vmADIipX9lmVVQI1RQeuUEGA90+GCcGdc+ttI1vUTEU5dvbuIAi11bs6U4fACfX/liGJqoq3HeigqWi1eMlQY2zrIHkTHzttU39yUEsLNMoulmMtybtlCDmGv2C05tA66j0qtbHLJ7agY1zTRDoHct3qvMpBaJwvlKgH6uaI0yL0+dlTjGeGQvcMGw2SomV6OdZkf3Q0j0HN8jtVW6uoosVGKI1Cs9g9NJ/nQAnjP48HDER3C6Lxtmv9+RkbMBUQgjLkUuKKzaBQrra3F81czSIQa8KGd5n/Yauc4nTJW2tYujKGw4eDKv9Fpjjnayq8giXcQpOMQX5dE/Sgt6UNltHU/GDoUQV8xyH/v1K/fJkZqjXqRhJHeeO5z54VFI6u89xECnUqc6BiHSTVVXh+Y9YyoOH8dJCjA/MmWUl+oNAk4UBn3lm96tbQMlU7fueHPDpgSYjytogJIhsbYVPRg870gOxP4LQWw68KCFdQlL2VuPKLA3NJzYA+7UyybovNX9yn65c4XyoUCWJlgNhwCCu8aeVErFxEsQE/HiliqcxpMbwgdcNoMD9diCkHP8A0HwdhEXAd9uk7HG9bvmjajtkphP/Ed8nuF+uhxVZv6yamRAd0/fz2bfwJa9Ge77rrm67xDmHWffCq1Br68FfJh7qBkoqxszc8ODTb9mZjSh29AP7YV1xiB83TfSVqs5V/bYOfwlk= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9aAO5Ass9MoTYRM/tbk1Np315B010EXFnce1VRbnsNEq9Ja0GLpE8yOgj9Jz/s/59FJSVs3PsR8tL5FWEqlsK/IM0QWPb088+ak1Q6HY9bxbH+UhrYZbrLsyyWoE+jaitabGgMKxoTXpTly/3Ls5XnGxNkaG7m/i5yw0rTKQb7SH+oLJJG4uteTjCuLnyRp4GdepXAKjVJoqogb9SPOzePcz4XI+SogEZEwqE1/Yy/9QSxrt7FuehtSu7cls3mVwmHxlJHiQeb889VPUy98Fh69EIHnoc2Gbv6MwrFLwkkkch9YVqJGZaCSgyD7skgK9/rDSOkp34QVHfOqUakSO+wzd8T0u+gT4uZo2hCeLl5/+H2GRIXOP+VN/6lb0z+Z727vmHhwr//t0tZEPYI6iUd74i5CLoGHkWx5kw+6kvSIhFibCXb6elgHiK8jSZwgwL2eRkQIbZWAh1IOnp1hauNjOewnhoTSIRVFC64pLQYumgCxUhWaVfc4h451eD61AdMr5LGgUQRoI7I26DuKIt8CESW5NFEfjqZlCxk58XnXx6IAAqQwrKSvnDlHfmvDohIqQhLPFhDOx1q5Y4XEW/YBYV6H8aE5kBmkFMT8Gd6rDGho7JFrhVmbYe9EZC4Gi X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yOtBFYC612zgUONk2a1yY/DT3IhbXiTKXnYvX0lS/1IIVU55n/Vpo8RFQhmU?= =?us-ascii?Q?LBqwxuZS4kOEilzCCa0aflDJ2I4StqDoViV+u2VaMAPg5AoDd7yHhsU/5HjH?= =?us-ascii?Q?Bqoqe6j0dQuNN9asNjI4EEyPvao0RoYbqQRoUr8ATD8eacTmR4xekt/vSpGA?= =?us-ascii?Q?HOwAX1zw1yVbNHTFUhi/q092CF17Ua5d5mfhFh/4YH0/K1pyNHV3pn6Bg8sN?= =?us-ascii?Q?J1yvlaOuVuWaLwUqoDL2Bg6AZ51EL3WUCS6kqk1WoZDNJBCP0pCkbt92lsvl?= =?us-ascii?Q?3qpPKvI4RLd/9LFbYsbdhpB6e1vJkk/5v7eW/VZ7hJSD8Zf+idlWIieIvxmz?= =?us-ascii?Q?Fvmz2rzWdQNtQLLPJ0SGS56A4RDrKYKo2Atuxtq599oDld1g6vSSNdtF6C80?= =?us-ascii?Q?9dY69htN4zhtAej6PfzSYO+4Bl8vqZkQgTa29j2v2wqxPDO2hP3qiFw74DKT?= =?us-ascii?Q?Jr3c7wXrWjHTXf30iNNB2HhVfl/P4DYxafzLAgzQhIpCZnztTkr9nPHbHQpj?= =?us-ascii?Q?lFdOSFEN2onfGM/dhJ3Fse+YIQkRlAjkeyGGRC0+sTkrbgrnyPcx4tgL38/z?= =?us-ascii?Q?7BM+AK15f7j6hfT7h1IdR88aSsJsZobLMn1YwmbZQt1jInT4kfMX8ltBXM3d?= =?us-ascii?Q?jVNq9Jx2mEoi9g8XtznbNIV2u82TSx4AzBFHeOwZpb1gCREgTYQ3PDcHw9O2?= =?us-ascii?Q?2Xpp9BMXcRPTNyXvNPnldXCi756dP9GTKG16vz9kD4PedW0rGCqcABm1Cl0q?= =?us-ascii?Q?N1F23+LplP3LxIyLthP2gh0mO5he766IEPEhOjtRtiFrq/s6BvMh1yoHjE8o?= =?us-ascii?Q?0AKJFlrg+tpxX2X0mpub8rm8fhzgy7Lh4pWPIqWpwnjPG+nqLPu9tmM0Ufsl?= =?us-ascii?Q?20Cd68BgAtuF2hNJhpYWtwpL5l+qbkhNogp1W0x+2LQtuAJafNypQPlR72NF?= =?us-ascii?Q?U4You9PqdtmvPPqjBs6BOSM+Y88PSe7BVQxuQinzT25VdOHOIJPloqIIjBCO?= =?us-ascii?Q?LD+CEeBDfY/6/x0zhsw8+acrofUQ3g2/azJ3lrMDMHnFeMPCLLfftiPGxBFV?= =?us-ascii?Q?Y9MiSO4rxSEVGhYLkZLjo0wL9lqC5nnarkvvy1vu4HvRmDRJeF0gvGKg7sK8?= =?us-ascii?Q?sbHhTccPam24XtfxaPFsXNQi3nHTWLtPbdokQK5jb3UbGREWB52tLCwfc6yR?= =?us-ascii?Q?6pj4oB7DQjBIdhw4sEYyfgtV7BUeWe60nPfAWI4fRTIPqu+SUeyHMMpv/3FT?= =?us-ascii?Q?Aebooi+D0LjLB1q0HNauLU/BgUyF1V9vU0y877kiGQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85ee07ec-601a-41b4-3fc4-08dc37183b9d X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2024 22:14:00.0276 (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: AM8P250MB0200 Subject: [FFmpeg-devel] [PATCH v2 2/2] avformat/mov: Don't use entry[-1] in pointer arithmetic 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: It is undefined behaviour. Fixes many failed tests with UBSan and GCC 13 like "src/libavformat/mov.c:4229:44: runtime error: store to address 0x5572abe20f80 with insufficient space for an object of type 'struct MOVIndexRange'" (The line number does not refer to the line where &entry[-1] is assigned.) Signed-off-by: Andreas Rheinhardt --- Now switching to next_index_range in order to avoid having to duplicate the current_index_range == NULL check. libavformat/mov.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 71e8f7ae8f..d7da19998b 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -4022,7 +4022,7 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) int num_discarded_begin = 0; int first_non_zero_audio_edit = -1; int packet_skip_samples = 0; - MOVIndexRange *current_index_range; + MOVIndexRange *next_index_range; int found_keyframe_after_edit = 0; int found_non_empty_edit = 0; @@ -4038,7 +4038,7 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) return; } msc->current_index_range = msc->index_ranges; - current_index_range = msc->index_ranges - 1; + next_index_range = msc->index_ranges; // Clean AVStream from traces of old index sti->index_entries = NULL; @@ -4225,11 +4225,11 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) } // Update the index ranges array - if (current_index_range < msc->index_ranges || index != current_index_range->end) { - current_index_range++; - current_index_range->start = index; + if (next_index_range == msc->index_ranges || index != next_index_range[-1].end) { + next_index_range->start = index; + next_index_range++; } - current_index_range->end = index + 1; + next_index_range[-1].end = index + 1; // Only start incrementing DTS in frame_duration amounts, when we encounter a frame in edit list. if (edit_list_start_encountered > 0) { @@ -4289,9 +4289,8 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) av_freep(&frame_duration_buffer); // Null terminate the index ranges array - current_index_range++; - current_index_range->start = 0; - current_index_range->end = 0; + next_index_range->start = 0; + next_index_range->end = 0; msc->current_index = msc->index_ranges[0].start; } -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".