From baed21dc9dd8a6548e00ca1ded6df0afa6838cce Mon Sep 17 00:00:00 2001
From: Jean-Marc Valin <jean-marc.valin@octasic.com>
Date: Thu, 19 May 2011 17:25:48 -0400
Subject: [PATCH] Fixes a bug in the init() functions where were weren't
 zeroing the entire state

---
 src/opus_decoder.c | 5 ++---
 src/opus_encoder.c | 5 ++---
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/opus_decoder.c b/src/opus_decoder.c
index c47517cfe..c78423368 100644
--- a/src/opus_decoder.c
+++ b/src/opus_decoder.c
@@ -65,16 +65,15 @@ OpusDecoder *opus_decoder_init(OpusDecoder *st, int Fs, int channels)
 {
 	void *silk_dec;
 	CELTDecoder *celt_dec;
-	int ret, silkDecSizeBytes, celtDecSizeBytes;
+	int ret, silkDecSizeBytes;
 
-	memset(st, 0, sizeof(OpusDecoder));
+	memset(st, 0, opus_decoder_get_size(channels));
 	/* Initialize SILK encoder */
     ret = silk_Get_Decoder_Size( &silkDecSizeBytes );
     if( ret ) {
         return NULL;
     }
     silkDecSizeBytes = align(silkDecSizeBytes);
-    celtDecSizeBytes = celt_decoder_get_size(channels);
     st->silk_dec_offset = align(sizeof(OpusDecoder));
     st->celt_dec_offset = st->silk_dec_offset+silkDecSizeBytes;
     silk_dec = (char*)st+st->silk_dec_offset;
diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index 4bc495016..f306606a7 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -80,15 +80,14 @@ OpusEncoder *opus_encoder_init(OpusEncoder* st, int Fs, int channels)
 	void *silk_enc;
 	CELTEncoder *celt_enc;
     int err;
-	int ret, silkEncSizeBytes, celtEncSizeBytes;
+	int ret, silkEncSizeBytes;
 
-	memset(st, 0, sizeof(OpusEncoder));
+	memset(st, 0, opus_encoder_get_size(channels));
     /* Create SILK encoder */
     ret = silk_Get_Encoder_Size( &silkEncSizeBytes );
     if( ret )
     	return NULL;
 	silkEncSizeBytes = align(silkEncSizeBytes);
-    celtEncSizeBytes = celt_encoder_get_size(channels);
     st->silk_enc_offset = align(sizeof(OpusEncoder));
     st->celt_enc_offset = st->silk_enc_offset+silkEncSizeBytes;
     silk_enc = (char*)st+st->silk_enc_offset;
-- 
GitLab