mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 22:03:57 +08:00
Fix invalid memory access in gcc.c (driver/72765)
PR driver/72765 * gcc.c (do_spec_1): Call save_string with the right size. (save_string): Do an assert about string we copy. From-SVN: r239475
This commit is contained in:
parent
397d8acd71
commit
3835914115
@ -1,3 +1,9 @@
|
||||
2016-08-15 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR driver/72765
|
||||
* gcc.c (do_spec_1): Call save_string with the right size.
|
||||
(save_string): Do an assert about string we copy.
|
||||
|
||||
2016-08-15 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user