From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 917574AA5A for ; Mon, 23 Jun 2025 05:29:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 03E1368E84D; Mon, 23 Jun 2025 08:28:53 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 0A5F068E71E for ; Mon, 23 Jun 2025 08:28:46 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2350b1b9129so26560365ad.0 for ; Sun, 22 Jun 2025 22:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750656524; x=1751261324; darn=ffmpeg.org; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:from:to:cc:subject:date :message-id:reply-to; bh=jZWBfwKNi9/itqelsxaxPgV6R4T0RuBUSmJCGyQQrMo=; b=TAWJVbw29aWcEmqnn+PtEOzDTksB5/5mmTU8DsNLY3uadQXDAUr3SfdwAHXb0s0RKz BQl2doZHbe5xe5QaJArxHnUpiTP6BCVLp06Ekyt4kKNdfOCRmDIiD44yKURe8B+GQ/jD 1qdx/eXwo8/YZUmXqrnMNGt3udHRUQFYif0SDY8lqVSG4r+Fj1OSu0m8zaKZG3FXmi+a uNdmvSuQj2EyEX7l4Zx+EoVlwn8Dw0Lhl+BVIZIjihrQQvum9t13+YYXaqA8jSh7WjA5 G6goaXVw+wsYO6yijntowARAM7pzVvgs2Ueewr8cqTgQ4zuESfTrSI7ixc9m99qj56Kp HmtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750656524; x=1751261324; h=cc:to:mime-version:content-transfer-encoding:fcc:subject:date :references:in-reply-to:message-id:from:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=jZWBfwKNi9/itqelsxaxPgV6R4T0RuBUSmJCGyQQrMo=; b=EzANDhjNNbSUDWgBmBjgjpaP/gKWKldq2G+b0Mv7u3PLN4Rnol6LnBMrfqClHC9tBW 37gKlu3xCYtpO8fRN8WcA2aLn/Y8dvwRTKlkBbL/nfNmyCgoP88hYde5mlGEBRG0BV8/ eXPFcNSaOKSfAAF1C0uStLScCcJSypZ+O81h3cAICyDeXzv/GPIEaktHB9XAQq2E2Vqj nm3FQAfLMSZXHfRPhxMCS9hE9uFrnQN9b1hCyCBoh2gHuIVMeMZ3nx8KtCiSA/JQreMB lCF9fz/5lDPkCLULQBIONw4PSw7Y7QnFFVa8GbBV2IjuwM5Iy44wss3OTD4m9shPXcv9 Y+kA== X-Gm-Message-State: AOJu0YyUmXDJJcvQhR+szDxj2EGanDPWPVyMx27hNU6LvGbmUuQhZFgx 47nJ1/aAVVH6w7o/3AaCG601iNeXZ9ZYj7SgtIIRyVPiKvCTEYQAZJZ3yi3Qfg== X-Gm-Gg: ASbGncuAeHP2n/v/oGjVyqOtqMOBSWGGyjpr14WdkNDYfSRc84KR0ogi19Ml5LuBKle EKohOWsmBLfkjocPvT2vMAlGEbA37OhpBDBT1PTVnAhSNzhdfn0kfGywkBmij7ilMosqCGFT3IF 242IzNn6Cv1prRy3a1uRCVd+9CHd1qqarVGoTJK1I55qnWIDeCEDsThX6iEsKnv5fkSH4uVMYgc bMpul9kODu23jwBeTiGiH4MNy8pBYTyQ7QWUHBUKJFXEGy+5SWcK/eJb2+O2gDG4kbhT9mbl/Gi AQnR+SgafCdk5lun8rChk9n6srYGnw4zCTrA2RLF+NzHSooarfO+evk7AHk9r9x/FF6KUOj6kK9 I6UcZll+tQJ+cMlni X-Google-Smtp-Source: AGHT+IGy93kaLy6ZoJ9K+gdmgK3uRCsLZplShgWaGEvoe4EHxqCVyrf7HYUsfYXOM8dHySaSXcVIOw== X-Received: by 2002:a17:902:dac6:b0:235:eca0:12d4 with SMTP id d9443c01a7336-237d9a7b812mr195098035ad.53.1750656524237; Sun, 22 Jun 2025 22:28:44 -0700 (PDT) Received: from [127.0.0.1] (master.gitmailbox.com. [34.83.118.50]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-237d867ebe3sm74249635ad.180.2025.06.22.22.28.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 22 Jun 2025 22:28:43 -0700 (PDT) From: Andreas Rheinhardt X-Google-Original-From: Andreas Rheinhardt Message-Id: In-Reply-To: References: Date: Mon, 23 Jun 2025 05:28:28 +0000 Fcc: Sent MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/avcodec: Check sample_rate generically 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: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Andreas Rheinhardt Check that all audio codecs except decoders with the AV_CODEC_CAP_CHANNEL_CONF flag have a positive sample rate set. Fixes: AVERROR_BUG return Fixes: 413997604/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HCA_fuzzer-5188382613635072 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 6 +++++- libavcodec/encode.c | 5 ----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 7bcb0295e5..0ad39b4d91 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -254,7 +254,11 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code } } - if (avctx->sample_rate < 0) { + /* AV_CODEC_CAP_CHANNEL_CONF is a decoder-only flag; so the code below + * in particular checks that sample_rate is set for all audio encoders. */ + if (avctx->sample_rate < 0 || + avctx->sample_rate == 0 && avctx->codec_type == AVMEDIA_TYPE_AUDIO && + !(codec->capabilities & AV_CODEC_CAP_CHANNEL_CONF)) { av_log(avctx, AV_LOG_ERROR, "Invalid sample rate: %d\n", avctx->sample_rate); ret = AVERROR(EINVAL); goto free_and_end; diff --git a/libavcodec/encode.c b/libavcodec/encode.c index 72dfa8867a..38833c566c 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -633,11 +633,6 @@ static int encode_preinit_audio(AVCodecContext *avctx) avctx->sample_fmt); return AVERROR(EINVAL); } - if (avctx->sample_rate <= 0) { - av_log(avctx, AV_LOG_ERROR, "Invalid audio sample rate: %d\n", - avctx->sample_rate); - return AVERROR(EINVAL); - } ret = avcodec_get_supported_config(avctx, NULL, AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, (const void **) &sample_fmts, -- ffmpeg-codebot _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".