39 lines
1.4 KiB
Diff
39 lines
1.4 KiB
Diff
|
From 93b26d6323699df302771b89ee3e7fc30780cc86 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org>
|
||
|
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
|
||
|
|