From patchwork Fri Sep 3 23:10:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29987 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1726931iov; Fri, 3 Sep 2021 16:11:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxieRPm2YKHcRyMF7nIgP+UiIF+EPwCwvS8RqoaKQbLNzqS7PMNwsbvw/RegZWbzMdbKqxK X-Received: by 2002:a17:906:74d:: with SMTP id z13mr1306646ejb.127.1630710669939; Fri, 03 Sep 2021 16:11:09 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x9si149931eje.318.2021.09.03.16.11.05; Fri, 03 Sep 2021 16:11:09 -0700 (PDT) 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=uVta6Jpb; 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 95F98680523; Sat, 4 Sep 2021 02:11:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067016.outbound.protection.outlook.com [40.92.67.16]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2EC8680523 for ; Sat, 4 Sep 2021 02:10:54 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IUy+HiU0v0mC1HDdPRiIe5sPaRDp7vp87eHfT2YbcRW+Q3eZnnaF68GsCeMRiTa9FHQXwcGMem4FobtJ9TWwQ2Un+1nn2reEzVfYYUpNam4Yry64ZCuSwXXktin0YmdcMJ9ifGNqASbrZJ3S27Vm4xgAdR5+s1z4AgKI0lRqFewzhQJRJ1bRni5kW/GSAE5wq3F9dUkmDSvdotZJJmhvS8w6UCHG+WZqP+nO/CAf9cLEIPJv0hoyAU3L46Pl5A7xH9jZK7e1+pvIEwBwtwIVfRikvle2Cw1bONnlMf+S1skrsvtWV8pzcsK8RFRdvJPSVkEcMekJO59q8yWJdv/q8g== 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; bh=0ZL5n/dyEz8EMEthcxsDJE+2KJ2TnOfhEt4pjW0oTBA=; b=W4LvMxY5HDce5nfdTKZJkqDN1MDp614xSgTA31QP/qnNOonBsXC3fBez4fNom1pCeD6zgjfamUJac00vZlXjPH3e+smqaVfv9MIX8ySQpjufc1TPb22KVHZYUCjzWodlPvHGEY3adU761cfjSwsK8lVH1kSg4psuhXLX3eftC8Gedi0csdW0bFNLT7wKyDB+bfVpcTHQBx5fgT4gSWaMoA9LnkkrG7Ef6InOh1rKFOouzrNvoSGvqaD7P/VSX4QSxeR7OwOsxKxAasqMi+pnCMlNwiLNn7WEcT9OlBSwH4PM+HL69Z/rk+swmPFazwbRwp2kNO1zXm9XPXQLMrKqCA== 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=0ZL5n/dyEz8EMEthcxsDJE+2KJ2TnOfhEt4pjW0oTBA=; b=uVta6JpbCFWn10jTGQSliR7616XU9qkzXIHh05s1IYiEA64FMz+XgYIcYIx/xWX6GymKP4OMEncupDFeHrMz5Ni4irU6KKoYFvNk25lmz765dx4x50/832iGsMHfw6y5QoUtZwqZPjAdcFPaNdL/2iTGsNHSsWNLRoBz87D+iN2RGclAmeuT/JfnzEueBXgDRU43Qlr8m8v3mMP3ZXraJV0q7mAd4xrYjg9YAIh1MSJFw+ZrNFwngiRigN+VfooMv83eYolyiVDHJI0GPmmYphl+NMGh3XdZ0sAKbwCF+a7Wa3MvDCH2rnseO/eHOGqx3JOhEgu37BbZR1aEqhiT0A== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR03MB3009.eurprd03.prod.outlook.com (2603:10a6:206:18::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.17; Fri, 3 Sep 2021 23:10:53 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4478.022; Fri, 3 Sep 2021 23:10:53 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 4 Sep 2021 01:10:32 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [tJRUkJHqt6nTsg3GXEiUAZLMpr+gNBrW] X-ClientProxiedBy: AM9P195CA0023.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::28) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210903231042.3346323-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM9P195CA0023.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19 via Frontend Transport; Fri, 3 Sep 2021 23:10:52 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8d675b33-6205-43cf-1a3c-08d96f3013b7 X-MS-Exchange-SLBlob-MailProps: EpEO96k6WomgUcfN1U05Hvh7Gqub3TXLhyGduNKFysyk4MKZjmHIogeckvUbv6v4iZxr/CD0/nMA6/WZCfoI4/nr68GLQCKNzDCzfsvx/X7tqS4QNrNMPrerKl87E/alYyksxeIlCpoZ7y4drMD7zxy/9HGilODYxRO860pCoD1tMmF6QWEmNUpYKopzzbxtZKl+rH2rXdjIwylgOxLBvYI2+xEnK7/95mq4ZgYF0y9+Ne4cApuuy+x5AAZrJAwJr1aJwtuRV06dAbj6sZ3iFodpyAMISTI3VndkoeYkxgC7wPOPCOwBvDCqmkYcCCkA4bThYo3oVWiyR1NGNjCJkWApR4YHIzVPnPCjYkcUFaMgsnUCNyKr5IhWyGiz2o0zpWLfkBtJ4raZWF/vCPUgrtbuWOHgi42R5Iw7QlvXXUW7SpQ4bf6B1ztJ2ZC4O6jZ3gJbr/FCayhUhW9CFKKUAElesUsNJmBzgHXG3z6bf6MnUbovTVA8/+KItBk0DlFbZh2+D7rd3JCNKaQ2iHor40vLszh9zY81uz/pBhgy4RBTWmqW33f9iGfneZgitm1cWOrQ2QvQdVg+xum7hVmqz/m3idjjXup9y2CcA5Ll2mS4XGzLpyYbK4Ag/EMb69O/AHvrbGLOywPKPsPG277G84cv60VQ8vNSQ5UoTQYc4iKeqz7hCmnMt0r31t5h9ssaeCEJz+3/3Zbjt7SH7805U541+w4aBQvD5uCedZrR7TbMDzJEyZ7oRT/3W6kNcosrYQ6sSug1A+Y= X-MS-TrafficTypeDiagnostic: AM5PR03MB3009: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wpiMX4O1bPTKa3gou/gRRa7jamAmJuVsKPG9mpoNLvPUEu1BlAMxEen40nG8AnE9a0wXFObrnZd0PbaXOVHsc4ZM7ri/8nxq7UsXHFwSYBhYncJu1ULEEIdq3RCeAJ79tOKffwChYMwJJVBbXmc9ntMfWGGTJZYZ7d5Q0+KdU/I+aLDnzJnKQfm1JN3/0pZdzFnFodt2eFdyhYuuLplmrWTJS+iviYz46WjrhMB0sy6w/Th4QDHv20B0CA/qIyrLrVj1GGj2cfbxDk0yG2olF8jkmH/H/r6RsccEvNqqccOjGwaENQ7iDL2D4/SaeahzLArPQjspB+NbNIpCfl2YbUWRh0ZMItJzKnFxn3fi9hp6WXm/LAKnj8v+zu3eS5x/ylY2k2ogb4AvfIsItkq/QPG7rj6XTClBXkHXw9d1hiulWoXA3lmu7fUwX7lzwfpJ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hG34UeN4CZHiP8onWsMFLRkbzWPAOHpe64WFL0oeh1WyPr4CPqYiHxfUXoQ1McTTa0fz47ynYpCzIUFfl/ro9vavfBHzLJ8rpREEt+m7KzNP3hVoe9KVbg9keneWMYJ+uTTdEiMGyGUmkFQozims2g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d675b33-6205-43cf-1a3c-08d96f3013b7 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2021 23:10:53.4922 (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: AM5PR03MB3009 Subject: [FFmpeg-devel] [PATCH 01/11] avformat/mux: Sanitize packets without data and side-data 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: 01jpCimf8oKh The BSF API treats such packets as signalling EOF and therefore such a packet might corrupt the BSF state. In such a case, the guarantee that av_interleaved_write_frame() always frees the packet is not upheld. Signed-off-by: Andreas Rheinhardt --- My first attempt was to disallow such packets, but the movenc test explicitly used them (see signal_init_ts()), so there seems to be a use for them. libavformat/mux.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavformat/mux.c b/libavformat/mux.c index 6ba1306f2b..dbcd3835c2 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -784,6 +784,13 @@ static int prepare_input_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt) if (st->internal->is_intra_only) pkt->flags |= AV_PKT_FLAG_KEY; + if (!pkt->data && !pkt->side_data_elems) { + /* Such empty packets signal EOS for the BSF API; so sanitize + * the packet by allocating data of size 0 (+ padding). */ + av_buffer_unref(&pkt->buf); + return av_packet_make_refcounted(pkt); + } + return 0; }