aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2017-12-18 11:31:06 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2017-12-18 11:31:06 +0000
commit4aeba1b7659603e49b8edfc0d64aa7790d2ef3fe (patch)
tree6009ec3df6192e616473d2320d2107dcb49d4f88 /gcc
parentbcfaa720a25d9f3bc760a993ee1d949f68e777ef (diff)
downloadgcc-4aeba1b7659603e49b8edfc0d64aa7790d2ef3fe.zip
gcc-4aeba1b7659603e49b8edfc0d64aa7790d2ef3fe.tar.gz
gcc-4aeba1b7659603e49b8edfc0d64aa7790d2ef3fe.tar.bz2
S/390: PR83420: Improve hotpatch option parsing.
With the attached patch we get rid of the following build failure: /home/andreas/build/../gcc/gcc/config/s390/s390.c: In function ‘void s390_option_override()’: /home/andreas/build/../gcc/gcc/config/s390/s390.c:15361:16: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 256 equals destination size [-Werror=stringop-truncation] strncpy (s, opt->arg, 256); ~~~~~~~~^~~~~~~~~~~~~~~~~~ gcc/ChangeLog: 2017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/83420 * config/s390/s390.c (s390_option_override): Avoid strncpy. From-SVN: r255777
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.c9
2 files changed, 7 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ab68244..128374c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ PR target/83420
+ * config/s390/s390.c (s390_option_override): Avoid strncpy.
+
2017-12-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/81877
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 0b04ac0..6f2a189 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -15357,16 +15357,11 @@ s390_option_override (void)
{
int val1;
int val2;
- char s[256];
- char *t;
+ char *s = strtok (ASTRDUP (opt->arg), ",");
+ char *t = strtok (NULL, "\0");
- strncpy (s, opt->arg, 256);
- s[255] = 0;
- t = strchr (s, ',');
if (t != NULL)
{
- *t = 0;
- t++;
val1 = integral_argument (s);
val2 = integral_argument (t);
}