From patchwork Fri Feb 24 18:28:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 40512 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp1485652pzk; Fri, 24 Feb 2023 10:29:20 -0800 (PST) X-Google-Smtp-Source: AK7set805bQqeDUr4YU1/hKQXk9i89fzQjHXpPTtU4JmZf37Kw8Ri+2Rc9ZFl1ttNppR5DOC5R2l X-Received: by 2002:a17:907:987b:b0:87b:1be:a8c2 with SMTP id ko27-20020a170907987b00b0087b01bea8c2mr24401547ejc.73.1677263360680; Fri, 24 Feb 2023 10:29:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677263360; cv=none; d=google.com; s=arc-20160816; b=WzYO818Y99+MVTYBoCJubFbLa5Qqc9CifsnTAuFpaVWw62xNKRIcyBDaRcmHZOza8o CLAhct45vIYOmGMjZzTNBFmMCXaQAG8vdObIIRCcDy6TjdgkUpL3nTKa0uBG7/0WkLiE eMinmqjkjz+tLa2VL2tYbNcSl3PYYE2pmzinx/e6IwdEeL1ujAGxJh6ICxgheGzQQRXg 4eNUhDGpHWYbz0/lLeSSVYV2lzR91USk1PkxvEeZVG0DltffgX4zWfiSQ7QiBiCdv+6k fd+fFqyLZxNR34vheAzlU0jZAD2sjLmK7pkaxoMNL0sdgBv1n5WdKDRLX8yvHqE8/9pJ nVwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=EGemYTCEpGhlRCym5rqf3Bt4S15sc9rSTeJWAi99SsY=; b=lnc/PEY3VzmEzyFBcf2YmniBowSbIaIiSfHnVw3HLIPhwMgviQk8Fr1+BLfms0h8S2 /N2VBCJdJwitpk2DUNTVVvU50CR2HLgCESb5M8YVcN9MYmf9GQVZyeFYZXPyF9UrP3RP 4UDtPIXN+gcnR2fktgj6T3FPcnj3TE26z/NR1AMEyiZiqFr9uXdgDL4vNpIgcmMob4Ts VS6CnVr7pNBtwJnqexLy2mtd2cTCjj2NjXZl/wzB3ZMXBMYuVfmQ6ifGRtKk+ZuaO/Rg U2FeOxlc3wAuAz4OkhkhaV4mrkFJgB0vnGJJPhFOQ7XZ5DUKNYOoW9o/BDj2be84PSTF BLXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=kVi3RQtO; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u2-20020aa7db82000000b0049f1f3402f4si23767edt.87.2023.02.24.10.29.19; Fri, 24 Feb 2023 10:29:20 -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=@foxmail.com header.s=s201512 header.b=kVi3RQtO; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 912CB68C17A; Fri, 24 Feb 2023 20:29:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7618F68BEDB for ; Fri, 24 Feb 2023 20:28:56 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1677263333; bh=ylnTIz+1xIGBcw41oG8ZtOz20ASPBdJOu700L09EsJI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=kVi3RQtOFIUIcd+MYZxTA+5p0lWaq7Qz+lf5smQpAq2A7UWWuTTBSGZqda5C2eAUa BPWQmkcU6wMJ3S1zFFa2P3eTwg8WqZI+Ic2/XJQYtKiuRgLUXGxd6yWFT/m1632lp7 AkHHflqSw6cR2TjzcGcMIqAKlyqOkhDiv+wUsHq4= Received: from localhost.localdomain ([113.118.101.228]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 7333FEEC; Sat, 25 Feb 2023 02:28:51 +0800 X-QQ-mid: xmsmtpt1677263332t1x9y8lv4 Message-ID: X-QQ-XMAILINFO: N4CzT1PKe+qFiOYd9bN4cxSTYAzm5ILgScGImq7mPwLuCzTTsij6yaXMZf+MAx c2iDUIJ0UCFzsBqHX3l6wG6CIpF87kjwA8FYStMwT1znNuZUxSOCmzHc8HpfeZNWIvP32ZQxkzbl PE5/Loh0CYt0LsYYMtmCTVDLhzWSr+mtBo/tDSocgl40xtQn+SZEid/7idmqd3B4Q4d26MBeECBo hYXGMOsAb/fuCuxHTRg/FzjOyylR9+NYXf5VxzrktCjRwuI4vBBc/+ufh4tG5Giep1603IPh/UUh Ovg0fotOJHiu30zZUgBNe13DDZcbGfZtGGOSbXF5F5LhFYSKXPY6GmyxTM0j5MCqIL+AJe9tCt+d TYFLf8h8PYPTR2i40GD28NPjllzXzi7NrKnBYFjDi54ZI16iGeBWnl0jiyRpyXrCtSFmwp+3c6W2 HtbAR1vrUOPYpb3YIj9IsEr0vq+QI0PTtYTbtsLJniRYEA2MDS5oenhIMJkeURhqlw1BQ9hOlPOx nRuhb2GAH94OQFZMZepfPV6PsSoPMWiWQzB2n4LIBraaCiMhT4/eezorAIG1m1l6bWLwYpGlPkIg 0QBYbIbYx0nnOt3lABbvA8i5+FlGSSHaOqogIlGSBMhMm0ixa12TJA7R/tc1r4o3zrx/abYqJduf kzgxAraCEssKlk1maVNdu/D62+qRXciHBI2Mh/8ua3jwYcoEjHfLFn2JJUrKBJcMxfpgqpGB+vyk dqjEsc9QOskq91vXQ4M0eIhvwars8TcqpKk3L+dQwgA5+8AjTexzHukTtGGY1TYx7epnYp1lyxeT PK+fBxxR+qjClOMl0q0YObIxD+8dWbUUdrDET/7LYEk0skCBt9xPAdMo/be0vhnG2b2dnKS70OAF P4++VSuTCD7BwaWq0EFt0LWLTn/apOx5MNAU7dlLFS744KnhBBCPgexSertKmf2SgatjUTfY0tSG XEp7RlrD/DFF3z3SvWbdQZTbsaHZg5 From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 Feb 2023 02:28:43 +0800 X-OQ-MSGID: <20230224182849.426345-3-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230224182849.426345-1-quinkblack@foxmail.com> References: <20230224182849.426345-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/8] avformat/mov: check that pcmC box is of the expected type 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: =?utf-8?q?Jan_Ekstr=C3=B6m?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FX/cEQx60Sjq From: Jan Ekström As per 23003-5:2020 this box is defined as PCMConfig extends FullBox(‘pcmC’, version = 0, 0), which means that version is 0 and flags should be zero. --- libavformat/mov.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 8af564ed61..cdd44a9e44 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1590,14 +1590,23 @@ static int mov_read_enda(MOVContext *c, AVIOContext *pb, MOVAtom atom) static int mov_read_pcmc(MOVContext *c, AVIOContext *pb, MOVAtom atom) { int format_flags; + int version, flags; if (atom.size < 6) { av_log(c->fc, AV_LOG_ERROR, "Empty pcmC box\n"); return AVERROR_INVALIDDATA; } - avio_r8(pb); // version - avio_rb24(pb); // flags + version = avio_r8(pb); + flags = avio_rb24(pb); + + if (version != 0 || flags != 0) { + av_log(c->fc, AV_LOG_ERROR, + "Unsupported 'pcmC' box with version %d, flags: %x", + version, flags); + return AVERROR_INVALIDDATA; + } + format_flags = avio_r8(pb); if (format_flags == 1) // indicates little-endian format. If not present, big-endian format is used set_last_stream_little_endian(c->fc);