libsamplerate/0001-src-src_sinc.c-Fix-a-read-beyond-end-of-coefficent-a.patch
Dave Plater 299e4fce34 Accepting request 170979 from home:elvigia:branches:multimedia:libs
- 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
2013-04-16 08:50:41 +00:00

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