------- Additional Comments From uweigand at gcc dot gnu dot org  2005-05-27 
16:05 -------
I'm seeing the failure on s390 as well.  What appears to happen is that
the main program calls the library routine

static void
eoshift0 (gfc_array_char * ret, const gfc_array_char * array,
          int shift, const char * pbound, int which)

with a correctly set up 'ret' array descriptor, but after the routine
returns, the ret->data pointer has been clobbered to NULL.  The main
routine then segfaults when accessing data via that pointer.

The pointer is clobbered by the memcpy in line 165:
      while (n--)
        {
          memcpy (dest, pbound, size);
          dest += roffset;
        }
which is presumably not intended to overwrite the descriptor.  I'm 
assuming this is some sort of buffer overflow bug ...

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21594

Reply via email to