Fix possibly harmful outbound addressing. Patch by Kenan Gillet.
authorKenan Gillet <kenan.gillet@gmail.com>
Wed, 15 Apr 2009 19:28:28 +0000 (19:28 +0000)
committerReynaldo H. Verdejo Pinochet <reynaldo@opendot.cl>
Wed, 15 Apr 2009 19:28:28 +0000 (19:28 +0000)
Originally committed as revision 18528 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/celp_filters.c

index a48368f..ef1a578 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];
     }
 }