From patchwork Sun Jul 23 18:02:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 42924 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:be1d:b0:130:ccc6:6c4b with SMTP id ge29csp1483879pzb; Sun, 23 Jul 2023 11:03:28 -0700 (PDT) X-Google-Smtp-Source: APBJJlG2L2Cqsn7WyNGjEgnmQRQm/mNxT6MAysJ7uGPNL1fp9UZ/y+0N7gq0yL9Rx6wGOQllAuW0 X-Received: by 2002:a50:ee15:0:b0:522:200f:cc50 with SMTP id g21-20020a50ee15000000b00522200fcc50mr2937079eds.19.1690135407993; Sun, 23 Jul 2023 11:03:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690135407; cv=none; d=google.com; s=arc-20160816; b=PMA/pFfubDDgNddQ/xVyA8xmrzRFfVD0T+nJiRbUO2ivq9rlphEh9U0hTVgZgUtLNF R4CCJZGOqI2QnmTOCjAYFAOYdo5+K/0qbBm68Pdnh8F6aeWjX7/Ln9s+lw8EuDopZtbg uB4qos5GSyZ+nnd5lAPxR6FWdaPNDj1CrndLknKoXeKtsZz9cHnInpo7zOb838ZnijM4 DDvJf3isqQ0MI+z/VeN9GN6ef68k7f6yRDjEuWKkceUYgRRQouxKDfpZg2GnRaLSCoEK 3Shzi7CofD0+0H9OQ1xS3Rb8NYrdunfHwb2+Gbh7RD/BsiEqwG/5PL8v+GZee+GbLoaH mYJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=GIsG8b6Ewel3yp9Bx2KxnNeXhzdDB5UrSf4v7fzkFQE=; fh=YYwLYmpaV0Fpw/rxmSKNRLS2XzDkAlGbHATiKOPtZrY=; b=oc5HO7dkI406/eL8mHsC7jxF+qdUyKIkyjOu4lT5G6jKjq9tMM1ghmwBjH1sw4ZJV+ K881AbIYrM7xIZfJXt1Uf+xEwZuWi3cL6Sj7wT24pp6L0MfdvQ2VX2N5pj+RUTBx2ztZ uhXcBXO9/Jtq8H4bzTD5SevHxlw/mzsOQtu/8XE/hlxeWzy63MPeZfLFiO1Kq0cZ/PzU bcGrYVR/vMh89OZg++MdyvYaccsKzn+mDrwHVGLGT3e7EuFKOU/q2eOD2xN5tFv4gSgB u209N8/E4IPeditxUVFMCJWQXN7l1lQgio4aUcUGGB0xh6v8KOZzY/l9D8zqVLO3uA+p nyFg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z9-20020aa7c649000000b005222c3c0debsi413625edr.526.2023.07.23.11.03.14; Sun, 23 Jul 2023 11:03:27 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6A8AC68C28D; Sun, 23 Jul 2023 21:03:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net [217.70.183.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1484E68C392 for ; Sun, 23 Jul 2023 21:03:05 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 443AD240002 for ; Sun, 23 Jul 2023 18:03:04 +0000 (UTC) From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Sun, 23 Jul 2023 20:02:59 +0200 Message-Id: <20230723180303.8000-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/vmixdec: Check for end of input in decode_dcac() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: C0Cl9VRCF9P9 Fixes: Timeout Fixes: 59952/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VMIX_fuzzer-6718213736759296 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavcodec/vmixdec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/vmixdec.c b/libavcodec/vmixdec.c index b77c90929a..4cc5963e25 100644 --- a/libavcodec/vmixdec.c +++ b/libavcodec/vmixdec.c @@ -115,6 +115,8 @@ static int decode_dcac(AVCodecContext *avctx, if (dc_run > 0) { dc_run--; } else { + if (get_bits_left(dc_gb) < 1) + return AVERROR_INVALIDDATA; dc_v = get_se_golomb_vmix(dc_gb); dc += (unsigned)dc_v; if (!dc_v) @@ -127,6 +129,8 @@ static int decode_dcac(AVCodecContext *avctx, continue; } + if (get_bits_left(ac_gb) < 1) + return AVERROR_INVALIDDATA; ac_v = get_se_golomb_vmix(ac_gb); i = scan[n]; block[i] = ((unsigned)ac_v * factors[i]) >> 4;