From patchwork Mon Sep 5 18:19:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 37677 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp2790868pzh; Mon, 5 Sep 2022 11:16:43 -0700 (PDT) X-Google-Smtp-Source: AA6agR74nBMdNcKWV6Y4UmwdygG8AFRbfFfU4ediRZzlqt4XnnuvSuQvIFESiJD7JZVInfiSmnPn X-Received: by 2002:a05:6402:27cd:b0:44e:c4aa:5ff with SMTP id c13-20020a05640227cd00b0044ec4aa05ffmr486753ede.193.1662401803439; Mon, 05 Sep 2022 11:16:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662401803; cv=none; d=google.com; s=arc-20160816; b=kXKBVJoES8wELcf+qDHwMhdQc1/FZSJRV5CgGjI2g6loaIwFHUMmjtW6WwgwhgQxNA UWTTUXNeT7BdCeZYxsFx3cxjue+CWICRSFciL1NRA0xgGaIeWwcz/UIF1ZwHQ9jzhRFu AgWuzlZrMaQKSYIWUxdWokw6yAdHLMUjUWgc2Klf77qOLGSGIFTDkLFv/AYI/62vBl1n 7a0nYmmVmbhkjGlwLUaIULyPt6DEX4fgJx9LEopAFxVkwL62Y0vT5JtoCIXTiqIUe1N3 htGeAC+ow/85NKXxXOkjQebGySUzXu6pXKj+qhL/8loq3xf3H7jSJE6QSlxdCeO050bG IUXQ== 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:mime-version:dkim-signature:delivered-to; bh=YA5EKyweS0gsRs7eer98p1YpKYoFJkVTbknObHYwRLI=; b=dlSAiSOOhtYL9GHCNmaFkI1MpcHvYhieBHcrqAB/9Ryv7Esq+xEAqmT6uwDQWraXmc uuX/JrZ6JFE/PjHNhAQ7sz2kGCcKJ+xyaNAZQWJX6NKrCf+DForIPnd7QnrXwqovJgRx uNQ05rAmgs4+07tp20jPRXl4SJ7X/nck7UO3ZbgEhlrDM7sVK86H5DOjm6uWCWsFuXXK WE3WibuJrZrB5f46pcda4GOzQ6VmNYfpwh3Mz1zvHthkdJnShyZqoZ4Hqe2P/rGfWl+I LKnVdDYxYhecO7EaE9yMubiemoQAs1KedJcu708gg0AZjrg/IHO0R9CMmtHRGBQm9XfJ I8qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pp4gFlhb; 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 bm5-20020a170906c04500b0073d72e1633bsi7710170ejb.908.2022.09.05.11.16.43; Mon, 05 Sep 2022 11:16:43 -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=pp4gFlhb; 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 581AF68B8F7; Mon, 5 Sep 2022 21:16:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C36DD68AF8B for ; Mon, 5 Sep 2022 21:16:33 +0300 (EEST) Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-334dc616f86so76304507b3.8 for ; Mon, 05 Sep 2022 11:16:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=8LupqsQVJXgcyCf9ToRMwvCugccVefF1teeAA15wB4M=; b=pp4gFlhb1KBLAu+bcxEzS7XYe/C7qqtSt40Jl/utOW5iv+HD2+BwcdgtMcpgIEc2t5 OpPHo53f4QFeKGKEwCoR1IPwWRXGhIKETU5xzFeibiBJfXduoWrd2rpjpbA9++H5vV8Y wh6vV6x2/RB4OHsNYqz2dQeBu0UZxE2FN2aKQ7TPGsseKLIytYKztrW1FKmUXBV47Z8J tc9zN0q7/nGq+98kjIFwVAtP3YccaGQfPP0eN+WbWL1QzlCHB3vGjIkGo75m0cFiAzBo e6JuEHkoJA4X1WCEVZwK4eOi+7lZQ6mc46oIMmZnlLIJ+GFz/+vjjcytLY5hWCtLYUeI NuxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=8LupqsQVJXgcyCf9ToRMwvCugccVefF1teeAA15wB4M=; b=ktRgLsIx6Quwttt2JmAF2R0J2p5+e+iTU8xcjDHRqDzs66NGgVepVH3a/keJmOT8LM mzjUEQkNaoCjCgJs0A4jpWdvzJHndmB0XdaJwGU5qA1UV9UMAW28VVnPj1fBh3bO6Iy8 vPd1QRdZZBcKzQTRFPgYG8VWQ+uxnyAIaQ6Ez/FIWzkjQ/CbH0FgcKUVLfZV89O6pIkl JlIyyhXTPxEnqf1KhoScpCKD/nY1bLVvbdrUJKBjIoqxQkdK8vURADGC2ESAu8aATmQ5 JY5RWX8NksizPocST5M4A9WiVlgDH7a1YI6vh4K7yQO9F7/iMNv2dxnkSdrmgmo9vmim Vngg== X-Gm-Message-State: ACgBeo3em2RF1qsuj2rjkAdWsOXbsBnW9P+u4HHL1AGu8d3vPVm2j4CP rTEw3Wz4xG+vgtXIF4SHegagLb8qPhKEwMlAyhsQtKP9 X-Received: by 2002:a0d:ccc7:0:b0:345:5848:5feb with SMTP id o190-20020a0dccc7000000b0034558485febmr2687029ywd.302.1662401792176; Mon, 05 Sep 2022 11:16:32 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Mon, 5 Sep 2022 20:19:41 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avocdec/flac_parser: another fix 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: SyT+I3YBHDWt Patch attached. From 01e931d2c7f50727d8893268cdc3ae0dbe75c250 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Mon, 5 Sep 2022 20:16:13 +0200 Subject: [PATCH] avcodec/flac_parser: add missed opportunity to check crc Fixes #9621 Signed-off-by: Paul B Mahol --- libavcodec/flac_parser.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libavcodec/flac_parser.c b/libavcodec/flac_parser.c index 11cd5540cf..dd70721696 100644 --- a/libavcodec/flac_parser.c +++ b/libavcodec/flac_parser.c @@ -455,7 +455,7 @@ static int check_header_mismatch(FLACParseContext *fpc, int log_level_offset) { FLACFrameInfo *header_fi = &header->fi, *child_fi = &child->fi; - int deduction, deduction_expected = 0, i; + int check_crc, deduction, deduction_expected = 0, i; deduction = check_header_fi_mismatch(fpc, header_fi, child_fi, log_level_offset); /* Check sample and frame numbers. */ @@ -491,8 +491,15 @@ static int check_header_mismatch(FLACParseContext *fpc, "sample/frame number mismatch in adjacent frames\n"); } + if ((fpc->last_fi.frame_or_sample_num + 1 == header_fi->frame_or_sample_num) || + (fpc->last_fi.frame_or_sample_num + fpc->last_fi.blocksize == header_fi->frame_or_sample_num)) { + check_crc = 0; + } else { + check_crc = !deduction && !deduction_expected; + } + /* If we have suspicious headers, check the CRC between them */ - if (deduction && !deduction_expected) { + if (check_crc || (deduction && !deduction_expected)) { FLACHeaderMarker *curr; int read_len; uint8_t *buf; -- 2.37.2