]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Fix possibly harmful outbound addressing. Patch by Kenan Gillet.
authorreynaldo <reynaldo@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 15 Apr 2009 19:28:28 +0000 (19:28 +0000)
committerreynaldo <reynaldo@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 15 Apr 2009 19:28:28 +0000 (19:28 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18528 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/celp_filters.c

index a48368f2421665c31403fd4d9aae1057423bf2b3..ef1a578f44272579da9c094dcc692ba9f5b4f97d 100644 (file)
@@ -61,15 +61,14 @@ int ff_celp_lp_synthesis_filter(
 {
     int i,n;
 
-    // These two lines are to avoid a -1 subtraction in the main loop
+    // This line is to avoid a +1 subtraction in the main loop.
     filter_length++;
-    filter_coeffs--;
 
     for(n=0; n<buffer_length; n++)
     {
         int sum = rounder;
         for(i=1; i<filter_length; i++)
-            sum -= filter_coeffs[i] * out[n-i];
+            sum -= filter_coeffs[i-1] * out[n-i];
 
         sum = (sum >> 12) + in[n];
 
@@ -94,14 +93,13 @@ void ff_celp_lp_synthesis_filterf(
 {
     int i,n;
 
-    // These two lines are to avoid a -1 subtraction in the main loop
+    // This line is to avoid a +1 subtraction in the main loop
     filter_length++;
-    filter_coeffs--;
 
     for(n=0; n<buffer_length; n++)
     {
         out[n] = in[n];
         for(i=1; i<filter_length; i++)
-            out[n] -= filter_coeffs[i] * out[n-i];
+            out[n] -= filter_coeffs[i-1] * out[n-i];
     }
 }