From patchwork Tue Nov 21 23:19:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dale Curtis X-Patchwork-Id: 6251 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp5898247jah; Tue, 21 Nov 2017 15:25:46 -0800 (PST) X-Google-Smtp-Source: AGs4zMa+o0waXuhn/v9OOTgx3VDgHKXeI4zUDiqSU1ylOwkqKYulQX+fpo5TgbFNhmeTvU+8CroF X-Received: by 10.28.49.195 with SMTP id x186mr2585581wmx.116.1511306746015; Tue, 21 Nov 2017 15:25:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511306745; cv=none; d=google.com; s=arc-20160816; b=cQvB2DTUOL1+26sBUEucESTDnKBYPpOMrrKt8ZUCePib87TZc812hN2fkyQnzZ/wmA 8lrgiqe2PSzOoNF1F7S/7V9veEVDbBzro9GEyRh35RiUokL5JCIaRKiMY/yTHnKxz+NA UkJJk+6WSKlTPRVi3X6VmWmG/8+AAhfr+QgWbP/dhOqHKuC8caVg1rv5k0vndUyxWVn/ WsxtiEeCU6xW/YbNF1pQ+WxY63blYjXmj7kFEKln+NSWA0XOnGIih/hUgSUx6yBax1YI Z0te+czjlk+VClKKymhgn4snflp2jHqpRYvqdZRZgSWvSEtkAKcpYyzLaJGXbwcbNbZJ 338Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:dkim-signature:delivered-to :arc-authentication-results; bh=G0FbXeC/EvBuGeFjo5uj7fU2jNwKw39ZPbtG3HOwpcE=; b=HihFwjrqkhrkZSqhsGdIBFG9QuGurLNOlU1PwRbkKTUTEy9izkvH9xJCwwXx6NF3ha /stEQQ7Ke827DU+JPswtjdC8hW5hqvlsqYXAkxYFTTXnGEcXx4ttGYq6+0JfRTi4/DX6 sY9No24OPucaWDg9u3bK0CaAtivRIl42Q+r9+h6jWLx4vJQoOhQlqtcrvO9gkH+Icjhc yCIHmnGSqnPG+sll6njHWf3119T71rv9rMnGD+yA8H0r9xfW/Gx8WxElUOlys7n6TkjU /5uWcTNucozQvNFSp6PoB4WrOMd2Pf/X5iD1pHEVSWJOClMS+dF5P8bgOR4lv807YW0z rtgg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=CQ5csKc0; dkim=neutral (body hash did not verify) header.i=@chromium.org header.s=google header.b=IKfPMkAj; 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=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id t18si1871170wmh.220.2017.11.21.15.25.45; Tue, 21 Nov 2017 15:25:45 -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=@google.com header.s=20161025 header.b=CQ5csKc0; dkim=neutral (body hash did not verify) header.i=@chromium.org header.s=google header.b=IKfPMkAj; 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=NONE dis=NONE) header.from=chromium.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F6A1680A69; Wed, 22 Nov 2017 01:25:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f169.google.com (mail-wr0-f169.google.com [209.85.128.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DB61B680666 for ; Wed, 22 Nov 2017 01:25:38 +0200 (EET) Received: by mail-wr0-f169.google.com with SMTP id l22so12821827wrc.11 for ; Tue, 21 Nov 2017 15:25:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=RW9FGQHmvnmMjXMOT2/aYOiu3YtWpvUd4//0sI0FL7E=; b=CQ5csKc0cStITFw7kR0OH2UfKtnWDlZ7ptrJ0NMwDQZzHVhRh/FnyGOl4+yhV+Asgi IJKWI8LdQSOnh/LMsnizfgRZ1D/wBDeXC9XPBHU75ITcrrrAvLbFMp4wKxuamcOn7CwI KOn0lxA4wmtQaKtxgVOwUjxSta/6ICncWJjzWw4UWuZbMFj3K+Wcj1L7p3dCX12N4U+u gHfoHycKxmywI4d1nFrEDqzkd1hqzzhBBrXDYKfn4U+1FipNdGGYSrljG2Ju8LRL1Ujh dfwCMXSJP/lw1PAe6e5MR4d7q6A1IbKAiRjQ0TMeT86mgjFJOcZ7eWTP7g/DeChJo+dx 2oWw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=RW9FGQHmvnmMjXMOT2/aYOiu3YtWpvUd4//0sI0FL7E=; b=IKfPMkAjuRhn8yuGx91Mdt+zJzwOtul3Y+gloZGFeIZGaTrNYtViYnZUg6CzOzAAF8 3s2WEkZq7U1I6mh0KBE8asH7duzGbGRpBIx6ExSCMIuf+3fbWQKk7RuJnO6Gescf+aF6 MLZonx47iqrRi3xIo89yCbnGDciWcJE6iX5Dk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=RW9FGQHmvnmMjXMOT2/aYOiu3YtWpvUd4//0sI0FL7E=; b=JpLWmZsrr0cijXNTAD9F4bd1iio3GOfaXd7k5ISEltj8fFjR2ZGcL+io7XsuNvfLD+ S0NE8mgsJY/H1pNfNhUNu/dp6gzq1fZVRYcTls5K7xUlTpqY8BQ0Oac2uLtyvAi6h+bJ zIO+MeZeks+Dr9nVML7xfFmNS2Nwvw1LCplTsipZ4pqVAYDcHcUBrvR3JDWZEru761Xy u8alqQ4nIlFw/nrwXGXhlSeSgs7MLCZo2hol61ClRRZpopimh9OYKU89vLO1VAc9xvsb V2tiuBMQYAFDM9moXdcHUtlNFhnA1uV4DFzCGgJ45dJuTVXJ+/FCjM2JexwHnDuSvoJr al9g== X-Gm-Message-State: AJaThX6khc59lBQw9Vz3kfPvn19/LxKRc0cfp9mxjKb3U/2l6UzmkCht o7IAnGNmGT1gJU2LKhFwEAoIWfLRE0cVtH7jxmD1rBmm X-Received: by 10.223.131.166 with SMTP id 35mr15834846wre.84.1511306399522; Tue, 21 Nov 2017 15:19:59 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.161.4 with HTTP; Tue, 21 Nov 2017 15:19:38 -0800 (PST) In-Reply-To: References: <20171118104444.GH6009@nb4> <20171120204044.GP4645@nb4> <20171120222422.GX4645@nb4> From: Dale Curtis Date: Tue, 21 Nov 2017 15:19:38 -0800 X-Google-Sender-Auth: I-AwfszuFHIgSBnWwvbD-HuLqcc Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: Re: [FFmpeg-devel] [avformat] Prevent undefined shift with wrap_bits > 63. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Ah, realized this approach can work for wrap_bits == 64 too. Updated the patch. On Mon, Nov 20, 2017 at 5:42 PM, Dale Curtis wrote: > On Mon, Nov 20, 2017 at 2:24 PM, Michael Niedermayer < > michael@niedermayer.cc> wrote: > >> >> I think that could end with the correct result >> >> > Thanks for the review. Done. > > - dale > From 6f087bbdb6499dc21a53fcb838348ea271d4ca5a Mon Sep 17 00:00:00 2001 From: Dale Curtis Date: Fri, 17 Nov 2017 13:35:56 -0800 Subject: [PATCH] [avformat] Prevent undefined shift with wrap_bits > 64. 2LL << (wrap_bits=64 - 1) does not fit in int64_t; change the code to use a uint64_t (2ULL) and apply the check used in other places to ensure wrap_bits <= 64. Signed-off-by: Dale Curtis --- libavformat/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index ff5e14df6c..2cf8d61e82 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1738,9 +1738,9 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) // current one had no dts, we will set this to AV_NOPTS_VALUE. int64_t last_dts = next_pkt->dts; while (pktl && next_pkt->pts == AV_NOPTS_VALUE) { - if (pktl->pkt.stream_index == next_pkt->stream_index && - (av_compare_mod(next_pkt->dts, pktl->pkt.dts, 2LL << (wrap_bits - 1)) < 0)) { - if (av_compare_mod(pktl->pkt.pts, pktl->pkt.dts, 2LL << (wrap_bits - 1))) { + if (pktl->pkt.stream_index == next_pkt->stream_index && wrap_bits <= 64 && + av_compare_mod(next_pkt->dts, pktl->pkt.dts, 2ULL << (wrap_bits - 1)) < 0) { + if (av_compare_mod(pktl->pkt.pts, pktl->pkt.dts, 2ULL << (wrap_bits - 1))) { // not B-frame next_pkt->pts = pktl->pkt.dts; } -- 2.15.0.448.gf294e3d99a-goog