[FFmpeg-devel] [PATCH] avcodec/mpc8: init avctx->sample_rate (PR #20144)
Kacper Michajłow
code at ffmpeg.org
Wed Aug 6 20:50:39 EEST 2025
PR #20144 opened by Kacper Michajłow (kasper93)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20144
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20144.patch
Fixes frame validation.
Fixes: OSS-Fuzz/416134551
From b3f94d3da8a60fde592bd76bc61ba394c1f18aef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <kasper93 at gmail.com>
Date: Wed, 6 Aug 2025 19:49:11 +0200
Subject: [PATCH] avcodec/mpc8: init avctx->sample_rate
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes frame validation.
Fixes: OSS-Fuzz/416134551
Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
---
libavcodec/mpc8.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c
index c72b2e3686..a9545fce1b 100644
--- a/libavcodec/mpc8.c
+++ b/libavcodec/mpc8.c
@@ -155,7 +155,20 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx)
init_get_bits(&gb, avctx->extradata, 16);
- skip_bits(&gb, 3);//sample rate
+ uint8_t sample_rate = get_bits(&gb, 3);
+ switch (sample_rate) {
+ case 0:
+ avctx->sample_rate = 44100;
+ case 1:
+ avctx->sample_rate = 48000;
+ case 2:
+ avctx->sample_rate = 37800;
+ case 3:
+ avctx->sample_rate = 32000;
+ default:
+ av_log(avctx, AV_LOG_ERROR, "invalid sample rate (%u)\n", sample_rate);
+ return AVERROR_INVALIDDATA;
+ }
c->maxbands = get_bits(&gb, 5) + 1;
if (c->maxbands >= BANDS) {
av_log(avctx,AV_LOG_ERROR, "maxbands %d too high\n", c->maxbands);
--
2.49.1
More information about the ffmpeg-devel
mailing list