summaryrefslogtreecommitdiffstats
path: root/mp3lib
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-14 21:02:19 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-14 21:02:19 +0000
commit7cd4d089bea1eec6b95a52f18dbee429dc06d4ed (patch)
tree16bfdba7b93aaa7aaa6f58f6538ba9a6e8d800ae /mp3lib
parent6f9cd1674c399bf88ba78e6428e5b6c06ee03eae (diff)
downloadmpv-7cd4d089bea1eec6b95a52f18dbee429dc06d4ed.tar.bz2
mpv-7cd4d089bea1eec6b95a52f18dbee429dc06d4ed.tar.xz
Index must be positive to prevent endless loop on bad data
Based on an idea by iive git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13337 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mp3lib')
-rw-r--r--mp3lib/layer2.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mp3lib/layer2.c b/mp3lib/layer2.c
index 8c1073943c..759d57521a 100644
--- a/mp3lib/layer2.c
+++ b/mp3lib/layer2.c
@@ -80,12 +80,12 @@ static void II_step_one(unsigned int *bit_alloc,int *scale,struct frame *fr)
bita = bit_alloc;
if(stereo)
{
- for (i=jsbound;i;i--,alloc1+=(1<<step))
+ for (i=jsbound;i>0;i--,alloc1+=(1<<step))
{
*bita++ = (char) getbits(step=alloc1->bits);
*bita++ = (char) getbits(step);
}
- for (i=sblimit-jsbound;i;i--,alloc1+=(1<<step))
+ for (i=sblimit-jsbound;i>0;i--,alloc1+=(1<<step))
{
bita[0] = (char) getbits(step=alloc1->bits);
bita[1] = bita[0];
@@ -93,24 +93,24 @@ static void II_step_one(unsigned int *bit_alloc,int *scale,struct frame *fr)
}
bita = bit_alloc;
scfsi=scfsi_buf;
- for (i=sblimit2;i;i--)
+ for (i=sblimit2;i>0;i--)
if (*bita++)
*scfsi++ = (char) getbits_fast(2);
}
else /* mono */
{
- for (i=sblimit;i;i--,alloc1+=(1<<step))
+ for (i=sblimit;i>0;i--,alloc1+=(1<<step))
*bita++ = (char) getbits(step=alloc1->bits);
bita = bit_alloc;
scfsi=scfsi_buf;
- for (i=sblimit;i;i--)
+ for (i=sblimit;i>0;i--)
if (*bita++)
*scfsi++ = (char) getbits_fast(2);
}
bita = bit_alloc;
scfsi=scfsi_buf;
- for (i=sblimit2;i;i--)
+ for (i=sblimit2;i>0;i--)
if (*bita++)
switch (*scfsi++)
{