From 93b26d6323699df302771b89ee3e7fc30780cc86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Mon, 15 Apr 2013 23:24:16 -0300 Subject: [PATCH] src/src_sinc.c : Fix a read beyond end of coefficent array problem. found by gcc 4.8 address sanitizer diff --git a/src/src_sinc.c b/src/src_sinc.c index 0b87066..1cd291b 100644 --- a/src/src_sinc.c +++ b/src/src_sinc.c @@ -201,19 +201,19 @@ sinc_set_converter (SRC_PRIVATE *psrc, int src_enum) switch (src_enum) { case SRC_SINC_FASTEST : temp_filter.coeffs = fastest_coeffs.coeffs ; - temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs.coeffs) - 1 ; + temp_filter.coeff_half_len = ARRAY_LEN (fastest_coeffs.coeffs) - 2 ; temp_filter.index_inc = fastest_coeffs.increment ; break ; case SRC_SINC_MEDIUM_QUALITY : temp_filter.coeffs = slow_mid_qual_coeffs.coeffs ; - temp_filter.coeff_half_len = ARRAY_LEN (slow_mid_qual_coeffs.coeffs) - 1 ; + temp_filter.coeff_half_len = ARRAY_LEN (slow_mid_qual_coeffs.coeffs) - 2 ; temp_filter.index_inc = slow_mid_qual_coeffs.increment ; break ; case SRC_SINC_BEST_QUALITY : temp_filter.coeffs = slow_high_qual_coeffs.coeffs ; - temp_filter.coeff_half_len = ARRAY_LEN (slow_high_qual_coeffs.coeffs) - 1 ; + temp_filter.coeff_half_len = ARRAY_LEN (slow_high_qual_coeffs.coeffs) - 2 ; temp_filter.index_inc = slow_high_qual_coeffs.increment ; break ; -- 1.8.1.4