From 52750366ed81b8d91f0daae416334e6195e054c1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale <anthony.minessale@gmail.com> Date: Thu, 17 May 2007 16:33:45 +0000 Subject: [PATCH] maybe fix the stupid bug in the mp3 decoder code git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5198 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/formats/mod_shout/layer3.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/mod/formats/mod_shout/layer3.c b/src/mod/formats/mod_shout/layer3.c index ec8eeda77a..490178df2c 100644 --- a/src/mod/formats/mod_shout/layer3.c +++ b/src/mod/formats/mod_shout/layer3.c @@ -826,9 +826,23 @@ static int III_dequantize_sample(struct mpstr *mp, real xr[SBLIMIT][SSLIMIT], in int x, y; if (!mc) { + unsigned sanity; mc = *m++; - v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift]; - cb = *m++; + if ((unsigned)*scf < 100 && (unsigned)*pretab < 100) { + sanity = (((*scf++) + (*pretab++)) << shift); + + //v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift]; + if (sanity < 100) { + v = gr_info->pow2gain[sanity]; + cb = *m++; + } else { + return 1; + } + + } else { + return 1; + } + } { register short *val = h->table;