From patchwork Sun Jun 16 23:08:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 49961 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9196:0:b0:460:55fa:d5ed with SMTP id s22csp1606679vqg; Sun, 16 Jun 2024 16:09:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX8D6ePM/65hnqQM6b/yoCVHjB7acoe4ocZQNFRaakBaUxHKVmli2zM6ZdL/EFO07rWfB+j7kZV9ABm55VvmK+7qGA/sM919PLMdg== X-Google-Smtp-Source: AGHT+IEdzBeoi3iJRGkKNtonxb89dixC4FawBmao90Ls4dxUgRE900p5g6MLWZ1EoIsAYI0hfCWn X-Received: by 2002:a05:6402:40c2:b0:57c:cb9b:a6d5 with SMTP id 4fb4d7f45d1cf-57ccb9baa28mr3699118a12.3.1718579363889; Sun, 16 Jun 2024 16:09:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1718579363; cv=none; d=google.com; s=arc-20160816; b=RdF+B5U54ZCgbbhzDm9+5GF87CG1PdlyJqyHiNmL22SJitpbsWw+bpQ5BBo6+iiIkj 8bFc4ZcD0sPlxiJ/NjBUQYE5ZTNH4mnfwGxj9NAZgw1kEx/h7akB8xEWJXft5cSHssIO m7nZLEW5Zz7dkbLrTW5XV7uzcCvvPmCvGPiXo80etRIVY2sbI3ci5MY1mtnZGo/y6iF5 Blh/RH4E377iawsIae/aa/wHhA2p9DlWDKM8PA7oR3L9dEV8n31ZeEbVrmfxzO9lVEJQ jnW+mEuYapPn6T/9oAZPJAR0GAdP1B/FxQQ2nIePfVuDLHMGtG3W1F5rSJts2SL5tqOy 73Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=up4sR6TM6m7z42TfxrKuPRRt61Pu0whCoJmUwnGU1K0=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=u2mIBbFUpXJJuQCzmUcEWAGfzPAUUWa29GcwKozW7xzx42HX8iyPa0tVte28+oD1p7 IE3KWfRHVQIPZ2Isn+jaKPuRaetf7MX77EiKG42RZ0CT7rYhWt0VMXx2SBQiHf9UiIC+ +ERXHriGctf6e39X3DPUj8ysE2JMWyOUvO9LPWE85YRRb8CUjS7uZKUZoy6pG54V7Uws gdjYkA40EEiukVCyyU+nUGtJzR7b6NXENhm8e5l6gvXAz14RG175DWFRFeQrzKTMnvIY Ugk3MORbP/zDR30tJvKGxIJ+qX2hnn4w17TBmtH119Lf8IJYnXaCYqohQGtMDmzZdpuQ io8Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@niedermayer.cc header.s=gm1 header.b=En5tRABZ; 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 4fb4d7f45d1cf-57cb72d6664si4164046a12.77.2024.06.16.16.09.23; Sun, 16 Jun 2024 16:09:23 -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=@niedermayer.cc header.s=gm1 header.b=En5tRABZ; 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 CB4B768D75B; Mon, 17 Jun 2024 02:08:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 45B2F68D73B for ; Mon, 17 Jun 2024 02:08:37 +0300 (EEST) Received: by mail.gandi.net (Postfix) with ESMTPSA id 9FEA51C0004 for ; Sun, 16 Jun 2024 23:08:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1718579316; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Km/6HRHKchQdxKy69gG+w98g8XUYsbLPMVe+CxwgLsw=; b=En5tRABZzAPzG3CyePR/vLWfu4baXSowK9NLsJhoD8SsHYkcPRsDlrgfoWKMEE4dpnOU2v YlRX5X5owGf/IudLXb/x/DWjCi1e/lBPTRB6+/2peguJfLPiATQJ91vKmyF8jF8zjuHGmz vcSPR5kUy9T6+VllNILqN7Sfc32tKRaZRbxlrXV8bFLvvWQhsxlzoopliN2bF1gt67Xmxw hUOapeOxLZHw5kzusCwN+ohDumEu8Td4vyEvADZBnVjZ8laq/wQQiXYnPtcY2T2VR/jY+O Qlem9tNGmcMeX9oSHnaOeEy723gyaslotBlUnbcms0xebgOrQKsD4HkXB54V6A== From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Mon, 17 Jun 2024 01:08:27 +0200 Message-ID: <20240616230831.912377-5-michael@niedermayer.cc> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240616230831.912377-1-michael@niedermayer.cc> References: <20240616230831.912377-1-michael@niedermayer.cc> MIME-Version: 1.0 X-GND-Sasl: michael@niedermayer.cc Subject: [FFmpeg-devel] [PATCH 5/9] avformat/mov: Check extend and base offset 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QzdBp9Tj14Ke Fixes: signed integer overflow: 2314885530818453536 + 9151314442816847872 cannot be represented in type 'long' Fixes: 68359/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-6571950311800832 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavformat/mov.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 9016cd5ad08..46cbce98040 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -8131,7 +8131,9 @@ static int mov_read_iloc(MOVContext *c, AVIOContext *pb, MOVAtom atom) } for (int j = 0; j < extent_count; j++) { if (rb_size(pb, &extent_offset, offset_size) < 0 || - rb_size(pb, &extent_length, length_size) < 0) + rb_size(pb, &extent_length, length_size) < 0 || + base_offset < 0 || extent_offset < 0 || + base_offset + (uint64_t)extent_offset > INT64_MAX) return AVERROR_INVALIDDATA; if (offset_type == 1) c->heif_item[i].is_idat_relative = 1;