From patchwork Sat May 21 05:21:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 34718 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:9992:b0:82:461d:f3b with SMTP id ve18csp919742pzb; Fri, 20 May 2022 22:21:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw/Rq/Dzk0kZcfofT6H5DJnBdaagWUzM7+G9T+iOfSrI7abOxMSCNNuvt//Iij9WXl+PfRw X-Received: by 2002:a05:6402:741:b0:42a:8fad:8f67 with SMTP id p1-20020a056402074100b0042a8fad8f67mr14034520edy.285.1653110516846; Fri, 20 May 2022 22:21:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653110516; cv=none; d=google.com; s=arc-20160816; b=K6WDo3YMic4MlywDpwfpc8c3IdzWSG5HNXRuBh4eAYA92fPPsd/ZXYcAE+ZLm7VsAG ES41WrZnzZSqTE362gCLAF3dZdAwUH331gbRJCZk2JG/LMB4w9l+rIlMNagriUQGEJ94 /d2RJLGUKQIDCXRVT7zeuqLfDOJXstNHv7D3YAl4fo+YbxcIJDZfBdOtoBi+ECPNrCO3 Qa+hwERh2oBSzx5LqjmcD7edln3eO0AvHRkfJtwYK5WJw8g/vyEQOORrS31Xujy3c9bO KLeaIzIul2BBF+5u2xkFvRJlj9htDUpUYHYyCfGMBlZ3HNxRIoKmdRUANVjPbIRtQB0k mFUg== 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:to:mime-version:fcc:date:from:references :in-reply-to:message-id:dkim-signature:delivered-to; bh=ih1bEfNZMBBhsqhPtb6BAWIHb72dsVZwra4hyNBPHwI=; b=K8spZmn5NvQ8oxOON0D3V3PlZceU+CQ4IH2Gdf57DQV9WkI024nqj7vsjFbRZnYG2a +FDXIilMGSTn206Uvt5kp82FEhdOcmK/kBxAWnydktGgIj7od6rR4M3ahKFo9WJSJlXv Ps9W7+d3uiyGbu1UAmH6aIZEE76+aprDJcMCb3yqYK3buk9mSnoxcGv8KnpWJ/cSFTtj /Gof72U3VpkNnw0jW4OJRJeiFxLYAlqlsSPJykivGoii062qdT7CAej5xbbktk8xwZL7 qLwHowNhy+v0mR10iW54CSxXi8ivL8Cr0/mEja1MTTl89dtdYLu4rKoLzTsojMlUUrQ8 Pd0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=CiwoezC2; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dn1-20020a17090794c100b006fdf516f015si5541316ejc.856.2022.05.20.22.21.53; Fri, 20 May 2022 22:21:56 -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=@gmail.com header.s=20210112 header.b=CiwoezC2; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 18EC168B460; Sat, 21 May 2022 08:21:50 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AA57568AAC1 for ; Sat, 21 May 2022 08:21:43 +0300 (EEST) Received: by mail-pj1-f46.google.com with SMTP id pq9-20020a17090b3d8900b001df622bf81dso9364176pjb.3 for ; Fri, 20 May 2022 22:21:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:in-reply-to:references:from:date:subject:fcc :content-transfer-encoding:mime-version:to:cc; bh=fOo65qOBDCxpcF9IbSmQTCU65UYsh+kJA1dKZIvdWO0=; b=CiwoezC2GHzSvCsnoblRkgfEqOqE8kmw+NCKMNiEEOHlQMH1WwiYFbzs6XXdfUpbMi UGrJCWdHjeNzCSY8BzAUCnzxd1y5V41rkcjoxRQkbm3hgJoqLUuzTNwj87ylJ2yDAZWR EH6PSqJk1/AZ7XRc+/c04WVj81HV9I7a6LCqo/UiseMg6K5Mdx7Anz8bU04Ii45SZpBT pPNAdxk+JlGspnbJeXdXP8e/IeUE0kYk613XdNGtCXWwICIVIFPSEvCZREIBR91YYeFL jRcb8vDYb5IVjjr4VcTZraViY9f9NVF6SrWXUizIiS4jOQlLZFkTBHjJgRVTk3Dlc0if OMVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:in-reply-to:references:from:date :subject:fcc:content-transfer-encoding:mime-version:to:cc; bh=fOo65qOBDCxpcF9IbSmQTCU65UYsh+kJA1dKZIvdWO0=; b=dyeOcNAiWdoLgYVQ5nCnGfM9JV3av5Ffhgh2FtDN/CqPXyfola05m5uoZHFIq3JDCx EFyfjQxqBYElZONtitmmvMYEfP5ZX7V8Se2PKJpe2xOPCRGTFLRj6PF2dt3fQ+DOXIHS IT31XTHfuptPxN/dhgOwUwSMd7S+ExbeX3OCCkbsuWHK/JiMiXQmCyoZUfKBIpsb+aj2 L+S0cSle2qjRLkIVXtNbn6mMhFuMQ2RtVo6y8qgnJaZD3Q+/KHSkAYmi6LqGxBM/dSPb y541pB18sy2gD+z4fB7G78ubOdeliLkC/hKqJgBry7iZiAvRuNHK9XRMLjQF1m7tE047 9cpw== X-Gm-Message-State: AOAM5339ePr05KWsGeUAKmMYA+QEsdSm8N/oQgAkrSo9wa5MDl3lEy/i ShQOcoIJJVD4LdpDjJF8mQL7nZBVZeL7vA== X-Received: by 2002:a17:90b:350b:b0:1df:a236:370 with SMTP id ls11-20020a17090b350b00b001dfa2360370mr14727344pjb.245.1653110501575; Fri, 20 May 2022 22:21:41 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id y18-20020a170902ed5200b0015e8d4eb2e9sm598680plb.307.2022.05.20.22.21.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 May 2022 22:21:40 -0700 (PDT) Message-Id: In-Reply-To: References: From: ffmpegagent Date: Sat, 21 May 2022 05:21:30 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH v5 00/10] libavformat/asf: fix handling of byte array length values 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: Michael Niedermayer , softworkz , Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: AITpwis6kOsS The spec allows attachment sizes of up to UINT32_MAX while we can handle only sizes up to INT32_MAX (in downstream code) The debug.assert in get_tag didn't really address this, and truncating the value_len in calling methods cannot be used because the length value is required in order to continue parsing. This adds a check with log message in ff_asf_handle_byte_array to handle those (rare) cases. v2: Rebased & PING v3: Adjustments suggested by Michael v4: 1 of 11 merged, 10 to go.. v5: adjusted commit message of 4/10 as requested softworkz (10): libavformat/asf: fix handling of byte array length values libavformat/asfdec: fix get_value return type and add checks for libavformat/asfdec: fix type of value_len libavformat/asfdec: fixing get_tag libavformat/asfdec: implement parsing of GUID values libavformat/asfdec: avoid clang warnings libavformat/asfdec: remove variable redefinition in inner scope libavformat/asfdec: ensure variables are initialized libavformat/asfdec: fix parameter type in asf_read_stream_propertie() libavformat/asfdec: fix variable types and add checks for unsupported values libavformat/asf.c | 8 +- libavformat/asf.h | 2 +- libavformat/asfdec_f.c | 338 +++++++++++++++++++++++++++-------------- 3 files changed, 229 insertions(+), 119 deletions(-) base-commit: 9ab20b1614194280b862d98dfcdb7b1bcff03329 Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-12%2Fsoftworkz%2Fmaster-upstream_asf_4-v5 Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-12/softworkz/master-upstream_asf_4-v5 Pull-Request: https://github.com/ffstaging/FFmpeg/pull/12 Range-diff vs v4: 1: 60966b7907 = 1: 7505ffa3c5 libavformat/asf: fix handling of byte array length values 2: 5acab7b52b = 2: f2d0b72bf0 libavformat/asfdec: fix get_value return type and add checks for 3: 97e0d765c9 = 3: 99660db6ef libavformat/asfdec: fix type of value_len 4: 025123f72d = 4: 8aaab15e8b libavformat/asfdec: fixing get_tag 5: 2d01e4dff5 = 5: ba31d01715 libavformat/asfdec: implement parsing of GUID values 6: 33b3d163df ! 6: d171cd5184 libavformat/asfdec: fix macro definition and use @@ Metadata Author: softworkz ## Commit message ## - libavformat/asfdec: fix macro definition and use + libavformat/asfdec: avoid clang warnings + + such as: + - bugprone-macro-parentheses + - wextra-semi-stmt Signed-off-by: softworkz 7: 1509b83f47 = 7: 0d032d9d4c libavformat/asfdec: remove variable redefinition in inner scope 8: fd31b0be2e = 8: 6bdb2d8bec libavformat/asfdec: ensure variables are initialized 9: f8728b1c51 = 9: d510093ed6 libavformat/asfdec: fix parameter type in asf_read_stream_propertie() 10: 78ed5aeb38 = 10: a05986d76b libavformat/asfdec: fix variable types and add checks for unsupported values