Dave Plater
299e4fce34
- 0001-src-src_sinc.c-Fix-a-read-beyond-end-of-coefficent-a.patch from upstream, fix off-by-one bug found by gcc 4.8 address sanitizer. OBS-URL: https://build.opensuse.org/request/show/170979 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/libsamplerate?expand=0&rev=23
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
|
|
|