diff options
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c index 7460f6af148..d3e8c88ac68 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -5420,8 +5420,9 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) if (files_differ) #endif { - temp_filename = save_string (temp_filename, - temp_filename_length + 1); + temp_filename + = save_string (temp_filename, + temp_filename_length - 1); obstack_grow (&obstack, temp_filename, temp_filename_length); arg_going = 1; @@ -8362,6 +8363,7 @@ save_string (const char *s, int len) { char *result = XNEWVEC (char, len + 1); + gcc_checking_assert (strlen (s) >= (unsigned int) len); memcpy (result, s, len); result[len] = 0; return result; |