[gfortran] patch for pr 17164 segfault on index

Bud Davis bdavis9659@comcast.net
Tue Aug 24 10:19:00 GMT 2004


tested i686/gnu/linux FC1

--bud


2004-08-24  Bud Davis  <bdavis9659@comcast.net>

	PR fortran/17164
	* intrinsics/string_intrinsics.c (string_index): check for 
	substring longer than string.

! pr17164
! index aborts when substring is longer than string
      implicit none
      character*5 x
      integer i
      x='12345'
      i=index(x,'blablabl')
      if (i.ne.0) call abort
      end

 
Index: gcc/libgfortran/intrinsics/string_intrinsics.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/string_intrinsics.c,v
retrieving revision 1.3
diff -c -3 -p -r1.3 string_intrinsics.c
*** gcc/libgfortran/intrinsics/string_intrinsics.c	13 May 2004 10:11:02 -0000	1.3
--- gcc/libgfortran/intrinsics/string_intrinsics.c	24 Aug 2004 09:48:48 -0000
*************** string_index (GFC_INTEGER_4 slen, const 
*** 221,226 ****
--- 221,229 ----
    if (sslen == 0)
      return 1;
  
+   if (sslen > slen)
+     return 0;
+ 
    if (!back)
      {
        last = slen + 1 - sslen;




More information about the Gcc-patches mailing list