PR #25343 opened by ffmpeg-devel
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25343
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25343.patch

**Backport:** https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25047

Nellymoser requires the demuxer to provide the sample rate, so reject invalid 
ones.


>From 92611900bb112123e9bf997fdcc2d78e4c4922fc Mon Sep 17 00:00:00 2001
From: Marvin Scholz <[email protected]>
Date: Tue, 13 Oct 2026 21:25:13 +0000
Subject: [PATCH] avcodec: nellymoser: reject invalid sample rate

Nellymoser expects the caller to set the samplerate, as it
doesn't read it from the bitstream. However the generic check
for this is bypassed as it has the AV_CODEC_CAP_CHANNEL_CONF
capability because it does set the channel configuration,
however that cap also bypasses the generic samplerate check.

This is mostly harmless as nellymoser doesn't care about the
samplerate, but since f566032bfda2 it would cause an AVERROR_BUG
to be returned to the caller, so better reject it outright in
the decoder.

Signed-off-by: Marvin Scholz <[email protected]>
(cherry picked from commit 23918b32004a517278ba441b9d0cb5307ced0cdb)
---
 libavcodec/nellymoserdec.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c
index 7037d6b0bae..04b0c01afe8 100644
--- a/libavcodec/nellymoserdec.c
+++ b/libavcodec/nellymoserdec.c
@@ -121,6 +121,11 @@ static av_cold int decode_init(AVCodecContext * avctx)
     float scale = 1.0f;
     NellyMoserDecodeContext *s = avctx->priv_data;
 
+    if (avctx->sample_rate <= 0) {
+        av_log(avctx, AV_LOG_ERROR, "Sample rate %d is invalid\n", 
avctx->sample_rate);
+        return AVERROR(EINVAL);
+    }
+
     s->avctx = avctx;
     s->imdct_out = s->imdct_buf[0];
     s->imdct_prev = s->imdct_buf[1];
-- 
2.54.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to