Do not read uninitialized buffer, no matter if it will be multiplied by
authorVitor Sessak <vitor1001@gmail.com>
Sun, 1 Mar 2009 11:14:21 +0000 (11:14 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sun, 1 Mar 2009 11:14:21 +0000 (11:14 +0000)
zero later. This should fix some valgrind warnings and hopefully FATE
ra144 test on ARM.

Originally committed as revision 17677 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ra144.c

index 01cbc86..5661bdc 100644 (file)
@@ -138,8 +138,13 @@ static void add_wav(int16_t *dest, int n, int skip_first, int *m,
     for (i=!skip_first; i<3; i++)
         v[i] = (gain_val_tab[n][i] * m[i]) >> gain_exp_tab[n];
 
     for (i=!skip_first; i<3; i++)
         v[i] = (gain_val_tab[n][i] * m[i]) >> gain_exp_tab[n];
 
+    if (v[0]) {
     for (i=0; i < BLOCKSIZE; i++)
         dest[i] = (s1[i]*v[0] + s2[i]*v[1] + s3[i]*v[2]) >> 12;
     for (i=0; i < BLOCKSIZE; i++)
         dest[i] = (s1[i]*v[0] + s2[i]*v[1] + s3[i]*v[2]) >> 12;
+    } else {
+        for (i=0; i < BLOCKSIZE; i++)
+            dest[i] = (s2[i]*v[1] + s3[i]*v[2]) >> 12;
+    }
 }
 
 static unsigned int rescale_rms(unsigned int rms, unsigned int energy)
 }
 
 static unsigned int rescale_rms(unsigned int rms, unsigned int energy)