aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorQing Zhao <qing.zhao@oracle.com>2017-12-01 18:20:45 +0000
committerQing Zhao <qinzhao@gcc.gnu.org>2017-12-01 18:20:45 +0000
commit8a302cb2b3cfc170254cf1d9fdc4dc2a681c15d1 (patch)
tree65d9d16c972bc2eba06f6d93d62de63d0cc097c9 /gcc
parent1cde289f1cf4d06815dbef089e969f7be0294178 (diff)
downloadgcc-8a302cb2b3cfc170254cf1d9fdc4dc2a681c15d1.zip
gcc-8a302cb2b3cfc170254cf1d9fdc4dc2a681c15d1.tar.gz
gcc-8a302cb2b3cfc170254cf1d9fdc4dc2a681c15d1.tar.bz2
Fix an undefined behavior in fortran/decl.c
From-SVN: r255332
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/decl.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b7f8a58..e5865dc 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-01 Qing Zhao <qing.zhao@oracle.com>
+
+ * decl.c (gfc_get_pdt_instance): Adjust the call to sprintf
+ to avoid the same buffer being both source and destination.
+
2017-12-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/83224
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 67e1c5b..d46083c 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -3362,7 +3362,7 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym,
}
gfc_extract_int (kind_expr, &kind_value);
- sprintf (name, "%s_%d", name, kind_value);
+ sprintf (name + strlen (name), "_%d", kind_value);
if (!name_seen && actual_param)
actual_param = actual_param->next;