libsamplerate/0001-src-src_sinc.c-Fix-a-read-beyond-end-of-coefficent-a.patch

39 lines
1.4 KiB
Diff
Raw Normal View History

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