]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libfortran/62188 (Array bounds overrun in bessel_yn_r4/8/16 and other functions)
authorSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 20 Aug 2014 16:18:27 +0000 (16:18 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 20 Aug 2014 16:18:27 +0000 (16:18 +0000)
2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>

PR libgfortran/62188
* m4/bessel.m4: Avoid indexing off the end of an array.
* generated/bessel_r10.c: Regenerated.
* generated/bessel_r16.c: Ditto.
* generated/bessel_r4.c: Ditto.
* generated/bessel_r8.c: Ditto.

From-SVN: r214229

libgfortran/ChangeLog
libgfortran/generated/bessel_r10.c
libgfortran/generated/bessel_r16.c
libgfortran/generated/bessel_r4.c
libgfortran/generated/bessel_r8.c
libgfortran/m4/bessel.m4

index 965b71ad57ec7c234f7a8cd335c965b4391a8bfd..308b0f52d589129d279db9dec38efa6ca99ba215 100644 (file)
@@ -1,3 +1,12 @@
+2014-08-20  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR libgfortran/62188
+       * m4/bessel.m4: Avoid indexing off the end of an array.
+       * generated/bessel_r10.c: Regenerated.
+       * generated/bessel_r16.c: Ditto.
+       * generated/bessel_r4.c: Ditto.
+       * generated/bessel_r8.c: Ditto.
+
 2014-08-14  Tobias Burnus  <burnus@net-b.de>
 
        * caf/libcaf.h (caf_register_t): Update for critical.
index 14b93e9100703ff9f895f9b1b3c5c31c29e4459e..e6977560d90e19dd8d05400cc8f6935b3994ad78 100644 (file)
@@ -162,7 +162,7 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2,
 
   x2rev = GFC_REAL_10_LITERAL(2.)/x;
 
-  for (i = 2; i <= n1+n2; i++)
+  for (i = 2; i <= n2 - n1; i++)
     {
 #if defined(GFC_REAL_10_INFINITY)
       if (unlikely (last2 == -GFC_REAL_10_INFINITY))
index d64fa9c138ede62807a8788bae7b37d713a6295a..67dea307ef798bed95cc3b440ad09336a7005069 100644 (file)
@@ -166,7 +166,7 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2,
 
   x2rev = GFC_REAL_16_LITERAL(2.)/x;
 
-  for (i = 2; i <= n1+n2; i++)
+  for (i = 2; i <= n2 - n1; i++)
     {
 #if defined(GFC_REAL_16_INFINITY)
       if (unlikely (last2 == -GFC_REAL_16_INFINITY))
index a86bb5fa958de77b9e24f43bbd3f06afe19f3bbb..7bdf07b3db7cf01ed03d3ed8d72e254ae44b4ed4 100644 (file)
@@ -162,7 +162,7 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2,
 
   x2rev = GFC_REAL_4_LITERAL(2.)/x;
 
-  for (i = 2; i <= n1+n2; i++)
+  for (i = 2; i <= n2 - n1; i++)
     {
 #if defined(GFC_REAL_4_INFINITY)
       if (unlikely (last2 == -GFC_REAL_4_INFINITY))
index 84018872e057dec470af3add6f4bee2b7d949df0..313bf179c791702068ab034b938eb9c03b50b488 100644 (file)
@@ -162,7 +162,7 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2,
 
   x2rev = GFC_REAL_8_LITERAL(2.)/x;
 
-  for (i = 2; i <= n1+n2; i++)
+  for (i = 2; i <= n2 - n1; i++)
     {
 #if defined(GFC_REAL_8_INFINITY)
       if (unlikely (last2 == -GFC_REAL_8_INFINITY))
index 36ffd3356889a039c0c3e29fc127d095b28f3166..6a865448e6bc3d6a003fbc65c87c22289af89641 100644 (file)
@@ -163,7 +163,7 @@ bessel_yn_r'rtype_kind` ('rtype` * const restrict ret, int n1, int n2,
 
   x2rev = GFC_REAL_'rtype_kind`_LITERAL(2.)/x;
 
-  for (i = 2; i <= n1+n2; i++)
+  for (i = 2; i <= n2 - n1; i++)
     {
 #if defined('rtype_name`_INFINITY)
       if (unlikely (last2 == -'rtype_name`_INFINITY))