From d060dd7cbd6405c8a31510ca17adb1e051934f49 Mon Sep 17 00:00:00 2001
From: Gregory Maxwell <greg@xiph.org>
Date: Sat, 14 Jul 2012 15:49:20 -0400
Subject: [PATCH] Opus_multistream API hardening.

---
 src/opus_multistream.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/opus_multistream.c b/src/opus_multistream.c
index 1128c07e8..5b2519df9 100644
--- a/src/opus_multistream.c
+++ b/src/opus_multistream.c
@@ -163,6 +163,10 @@ int opus_multistream_encoder_init(
    int i;
    char *ptr;
 
+   if ((channels>255) || (coupled_streams>streams) ||
+       (coupled_streams+streams>255) || (streams<1) || (coupled_streams<0))
+      return OPUS_BAD_ARG;
+
    st->layout.nb_channels = channels;
    st->layout.nb_streams = streams;
    st->layout.nb_coupled_streams = coupled_streams;
@@ -534,6 +538,10 @@ int opus_multistream_decoder_init(
    int i, ret;
    char *ptr;
 
+   if ((channels>255) || (coupled_streams>streams) ||
+       (coupled_streams+streams>255) || (streams<1) || (coupled_streams<0))
+      return OPUS_BAD_ARG;
+
    st->layout.nb_channels = channels;
    st->layout.nb_streams = streams;
    st->layout.nb_coupled_streams = coupled_streams;
-- 
GitLab