From: Anthony Minessale Date: Thu, 17 May 2007 16:33:45 +0000 (+0000) Subject: maybe fix the stupid bug in the mp3 decoder code X-Git-Tag: v1.0-beta1~297 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=52750366ed81b8d91f0daae416334e6195e054c1;p=thirdparty%2Ffreeswitch.git 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 --- 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;