diff options
author | Bud Davis <bdavis9659@comcast.net> | 2004-05-13 10:11:02 +0000 |
---|---|---|
committer | Bud Davis <bdavis@gcc.gnu.org> | 2004-05-13 10:11:02 +0000 |
commit | 92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114 (patch) | |
tree | 6b9d1350b0d987f11cd8edd85e5f95c559f990bd /libgfortran | |
parent | 014251eae30e30a6cc960f41c939d24ffed00066 (diff) | |
download | gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.zip gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.tar.gz gcc-92fbb7592bbd3899a7b2ca98b4ac0e9f857fe114.tar.bz2 |
re PR libfortran/15204 (ADJUSTR intrinsic accesses corrupted pointer)
PR fortran/15294
* gfortran.fortran-torture/execute/adjustr.f90: New file.
* io/intrinsic/string_intrinsics.c(adjustr): rework logic.
From-SVN: r81771
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 5 | ||||
-rw-r--r-- | libgfortran/intrinsics/string_intrinsics.c | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 1f4dd23..b597f52 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2004-05-13 Bud Davis <bdavis9659@comcast.net> + + PR fortran/15294 + * io/intrinsic/string_intrinsics.c(adjustr): rework logic. + 2004-05-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> Steven Bosscher <stevenb@suse.de> diff --git a/libgfortran/intrinsics/string_intrinsics.c b/libgfortran/intrinsics/string_intrinsics.c index 999807e..2cd07a2 100644 --- a/libgfortran/intrinsics/string_intrinsics.c +++ b/libgfortran/intrinsics/string_intrinsics.c @@ -276,12 +276,11 @@ adjustr (char *dest, GFC_INTEGER_4 len, const char *src) i = len; while (i > 0 && src[i - 1] == ' ') - i++; + i--; if (i < len) - memcpy (&dest[len - i], &src, i); - if (i < len) memset (dest, ' ', len - i); + memcpy (dest + (len - i), src, i ); } |