From patchwork Sun Jan 16 23:03:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33613 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2272220iog; Sun, 16 Jan 2022 15:04:24 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7J3HK3K0tJv+eQNirTQzj4OyuLOopRc/2yUXYpjRQ1Cm3guv4fMLV9YCvwyvdpE01okdG X-Received: by 2002:a17:907:9712:: with SMTP id jg18mr15612486ejc.328.1642374264213; Sun, 16 Jan 2022 15:04:24 -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 ds22si1569070ejc.748.2022.01.16.15.04.23; Sun, 16 Jan 2022 15:04:24 -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=QHL5ZWwz; 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 AC79668AE5D; Mon, 17 Jan 2022 01:04:20 +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-oln040092075109.outbound.protection.outlook.com [40.92.75.109]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F0AE68807F for ; Mon, 17 Jan 2022 01:04:14 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CpPUpmtBEITByL0mYDxuVKH54Ky9KcKWgfnZXcZjx1rOSB8pdHoT+a3G/Sia9W9o82WE66HlCoI5ZQSlKm7i12N5BYcLBaWbkyHQq7cJ5KxXbErpJKL+SnfEKGaZE7yUDbFAwaoYHRQ90PYsg8OexUf3rFh+5G3Xv/DTIOYJ5/Wjc2mgh/VTtOKetSTsyI+zzqIC9av83MPJdR4Mb1UjCXlbRbESxEosed7jcenIa8FOMS3W3cElzhFcqGju7r4XNGMpPiVbix6HWzHf3wCkIxh7E3LbgpFLxTXk0fcJn8G+YhWEDrnK98MZ943685svlF4tuOEquMbohL6X0X+vWQ== 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=F++kil6itOCifgszEUycj6m/Cu38AQLlRH75QrBrfsQ=; b=RtcMbIgqlIFpFctdeFVPOksyQYyCjlpVAPWpQ/BSiujF0sVyTXuqJWINPSaJ9oJ5Ep8frrJqj9FGI/iWYYuzxwxUDxbUBbk7sfItbt7Pdq5lUl6S73Nh70GdIA2A92dRFZoYhwON/OeSj4oHIn9pG2ZQ7HfjOzU3zWa4jZ+awpP9qxt7Y3LBhW3nOHVts5FO8DE2kx6O0Zw8myx0Hc8DGszx110XMAA9HpSlfkGHmT/nUYwn2Nh0sv7LnQ7MJX5u/ILahX30bAzJA9fYVaBVLS/tggWw8Lbr3nEs7XmF1N+xObEOn5IAhrXodPx9T3IseR3HUYzF2loW4Loehjs8Jw== 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=F++kil6itOCifgszEUycj6m/Cu38AQLlRH75QrBrfsQ=; b=QHL5ZWwza4O7X9i3BG+9Kvr/v6i83seBFrjoimG8Z79Lc8bV2aNLGBPyHV9K2o9poSCTVPaA472vds++EFenJuREj1ig9VynLwMHu3CljDBzX+x/NubqI9NQCBKIULcDX9xDmrZi1R5Xnlsz5ig+cdWbz92r4yhQhOaS3XxKiA5BBRbahSEmzhHxAXe9wzVp/xlXc2IoLI3BTJqcu6uHdgh6rsjluAX/Fomg2EQRk7Tfcsmq6ToIgtnogttzMsuDg6OKoLXQyFzB5YBXoe6QR7cGZtePBxJe2UJtPeFSWXRpQwiFHH0156pwNjnQPKGovMZ7jWFIuY9JQ6alhYrL6A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by VE1PR03MB6126.eurprd03.prod.outlook.com (2603:10a6:803:113::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Sun, 16 Jan 2022 23:04:13 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4888.013; Sun, 16 Jan 2022 23:04:12 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Jan 2022 00:03:42 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [ZHuMq+ziraz0Hjuzl/kKgiKYmrU9xdjF] X-ClientProxiedBy: AM0PR10CA0070.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::23) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220116230405.194506-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3e773956-f6e6-49e1-13e8-08d9d94482d3 X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEuZvKHt/RRJ4O3wxWCrUcc4w1PFSmNcPIAOdnZbNspMO44J3VCQwhkING6tOI3xs5DOaUpmk81GuUNN28UgPJi3OAhUrYK63W3eMXbP8JwdCbW7PhD7cl/CXFifOUnGZhZa17xaRwyXjthnstFB00mPpuKVr7OZE2ydE9PTXok5lZs8V8t9aTgUCqHWXjbFBR5DlyXn319S1spq1Gu+SVYYOrL2lL9ZMPmHTrnOTMp/vK2NWb/OyC0ft6hUGXviWz9XPjr/Onvi7nn+qtnS5FVAkf/okiFxvPVpmdjD06/TT/tVB6hvBv2pegzAc+EyNaIlRBTLgEIfDf4uugHDV5pxhPL02/jNHA4kerAreMJbkfaWML88gpwho4+j8ghgrolJDHmMkSeXnhxAC2UczyVZPeb4EaW9nsGIHRSI8uucMCmoP6UktFoz5nL0zZtPoJV+Zwy9qRY013pds/Y8Iqpewor04EPwVr6WiAmRBvdACIBzG2/L2BZl2PRAKLzuDhkR1oST0WvRyzT+CI9EzUyugp2m7Syl2NJalhpgEgX1PtOAgTfXGuyxjzc/HIX3/Ck2FxlM9rxom0K5dmnzuU55m7xVCXo47dnuqkWy3iqf6DoA3BcbrWdYDhNNLL47D6BQ4e8l0DXpQZBkQG0+4TkXEzvUjVQi72cCu3KzpxYyPqRP+gKrDD7947gwEZpnbGC1ZjUqcJb+Hc1oozeKTekiwPHyNOfAmN/956bs7iE00r+3laFtYcTdd7khK+8GxQEQ5viNEcTewNhbpIwXOlMy X-MS-TrafficTypeDiagnostic: VE1PR03MB6126:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cQ8gxSSpx9M+++2cKEkaWnCWY0rJVHwWK7SrObIKkybyRwJmStcc7wWY4VQB5WnkKXi/5W2E+MRyPZeLbMWlWNfKaxge90nElCKfnZWANLiVShUYS/PMi3c742jRlOE+MFErrIcOQcetIXprSAsOEJ8TQpiv/65kYF4IkHCYazdf6Lg6gQlePlyy1eT1I82lwTB53w504zAC7TYjFqOsQ/j8VM5s+e1tUchilF+X8oGE0d43NkyXuM+LZ4J7Zeq9ElYZ09dg23YVXI6OvDN+StVoS5w4PkEqQeSbVe1oMV+T4CF5tg0nlRFtzoefjvv6B7Lfq+opVvNYkjDthDx0kIQSE24fY2f+Swtt4kGzw0VZZAeQmVRyUbtCcYHxMa0hyzIzQUxC7GEUiMMuJg2D5Cs6mWMRseIX/lbGRWEHftEZXs6AUOqjgJWgGIvXKMtmOGpt3dK8wlUBexIZ8p7s7mr/wDkUXJ4y3DhapzHACuZMkYOvvDD/YLaJKVLI4RaETqck3CD2zNVb3wdU6iMo162nkm030HKYGQNSkX5gQpCGDlDo5EOqJwoBIGawmTvqmf+Kv7+ZYW5trYIvrjMfqQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BcAduOsEoCpXmEjiG6YA/6M159PuuYFw1iBZHVeLjJfq6iyg5jTsWRVRAWtarhg0wvmi0wu1iZ8N+qhPNvgsioZskBm1SgBpNGKJS3jYoqid3g+/3iRv07L5Si5DjMEMFpSt42qB4H+zJ0lnSWzMZOqgkP8MO6qbaCyJ5Ny492AgkJouIBXc5fZimJqPY6HCcuiAo5QJDjGOJBRppK/uPdj4pl64RXi1vtXHLMj4TIuzfJvX2L0KV23NXTCuKJGQNtECysyWZSpQdIOwD89bc+X1vJsfEq+AdPiWpx0rMW3boUK/2RxJOYhOfoqj8wyaKrsG1QYVbV9aB0qEOezHy1SDZYPeYce+RBfoPT6ZA5KIsd4pY7aDgYucmPSUeQEzx/bXX1BGqxd7KYsE3ZQDCbVcWHjbl1UD64CEeHdefNzf48MpqvqAjvrf///i3WRqkd4guwBkv42QS8+lPg/r+XBJCl0p5lX29X/hCM64MLYEO11fbLi2WeWeprGE4NYwnhJdK6jzJmXlq3QbDj6r8NswuXRD1h9DqOrYTipjKextw3htSnRjbmWSJ1Pv9aVbuZPENjosJzpfUTF7x0yguV3rfrhsv98pNsFSQnNIvRTbdxYuUTrR98ugI6Y1gFsWTR+0lMKr3gHHRS0xFuMrfC6lYPbA0wWRNglK8C93TbaqpskvTzpqaA5pmZ7KmjaVpENoT66ROynppanDfP+uwjj5gmM9Q+CxASmhlbLJB+E1yfLbZ2HY1KiDEBYZB7KeVblrC+OAJn7FHYeDPf2BakAoVxUP+MKDcDHYkjdGNKqjQQY2GegCOOabPrQynQXvFp07rG1AXYtLJ09mh3oFxm67Hwr3kBwmwaBu8K6ptjpb3sE6KByLnQAjvekmQQalsFTXPwqMZKQlES7O6MSPdQhkBaFb8rs8aq121v6doEGYyoqfNRke16TSByYEGgDf6vXDfm/dI6u8BUVYmGhNTA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e773956-f6e6-49e1-13e8-08d9d94482d3 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2022 23:04:12.8165 (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: VE1PR03MB6126 Subject: [FFmpeg-devel] [PATCH 02/25] avformat/matroskaenc: Don't open BlockGroup twice 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: JmXde3oUKLO1 This would happen in case non-WebVTT-subtitles had BlockAdditional or DiscardPadding side-data. Given that these are not accounted for in the length of the outer BlockGroup (which is a quite sharp upper bound) it is possible for the outer BlockGroup to use an insufficient number of bytes which leads to an assert in end_ebml_master(). Fix this by not opening a second BlockGroup inside an already opened BlockGroup. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 1dde12a7d9..81194fd28d 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2095,6 +2095,7 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, int64_t discard_padding = 0; unsigned track_number = track->track_num; ebml_master block_group, block_additions, block_more; + int blockgroup_already_opened = blockid == MATROSKA_ID_BLOCK; ts += track->ts_offset; @@ -2141,7 +2142,7 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, side_data = av_packet_get_side_data(pkt, AV_PKT_DATA_SKIP_SAMPLES, &side_data_size); - if (side_data && side_data_size >= 10) { + if (side_data && side_data_size >= 10 && !blockgroup_already_opened) { discard_padding = av_rescale_q(AV_RL32(side_data + 4), (AVRational){1, par->sample_rate}, (AVRational){1, 1000000000}); @@ -2152,7 +2153,8 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, &side_data_size); if (side_data) { // Only the Codec-specific BlockMore (id == 1) is currently supported. - if (side_data_size < 8 || (additional_id = AV_RB64(side_data)) != 1) { + if (side_data_size < 8 || (additional_id = AV_RB64(side_data)) != 1 || + blockgroup_already_opened) { side_data_size = 0; } else { side_data += 8;