[FFmpeg-cvslog] avcodec/opus/silk: don't assume stereo when calling silk_decode_frame()

James Almer git at videolan.org
Wed Jul 23 04:17:24 EEST 2025


ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Tue Jul 22 13:23:30 2025 -0300| [3f2b452a22597e34883bd913d0f11a8087090717] | committer: James Almer

avcodec/opus/silk: don't assume stereo when calling silk_decode_frame()

Fixes use-of-uninitialized-value under MSAN.

Reviewed-by: Kacper Michajlow <kasper93 at gmail.com>
Signed-off-by: James Almer <jamrial at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f2b452a22597e34883bd913d0f11a8087090717
---

 libavcodec/opus/silk.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/opus/silk.c b/libavcodec/opus/silk.c
index 97bb95037c..ffa2ec996b 100644
--- a/libavcodec/opus/silk.c
+++ b/libavcodec/opus/silk.c
@@ -844,8 +844,10 @@ int ff_silk_decode_superframe(SilkContext *s, OpusRangeCoder *rc,
     }
 
     for (i = 0; i < nb_frames; i++) {
-        for (j = 0; j < coded_channels && !s->midonly; j++)
-            silk_decode_frame(s, rc, i, j, coded_channels, active[j][i], active[1][i], 0);
+        for (j = 0; j < coded_channels && !s->midonly; j++) {
+            int active1 = coded_channels > 1 ? active[1][i] : 0;
+            silk_decode_frame(s, rc, i, j, coded_channels, active[j][i], active1, 0);
+        }
 
         /* reset the side channel if it is not coded */
         if (s->midonly && s->frame[1].coded)



More information about the ffmpeg-cvslog mailing list