On 07/24/14 09:31, Chen Gang wrote:
strlen() will get string length excluding '\0', but strcpy() will append
'\0' in the end, so need XNEWVEC additional byte, or cause memory over
flow.
Signed-off-by: Chen Gang <gang.chen.5...@gmail.com>
---
gcc/gcc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 6cd08ea..8ea46ec 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4895,7 +4895,7 @@ do_spec_1 (const char *spec, int inswitch, const char
*soft_matched_part)
{
saved_suffix
= XNEWVEC (char, suffix_length
- + strlen (TARGET_OBJECT_SUFFIX));
+ + strlen (TARGET_OBJECT_SUFFIX) + 1);
strncpy (saved_suffix, suffix, suffix_length);
strcpy (saved_suffix + suffix_length,
TARGET_OBJECT_SUFFIX);
Thanks. I've installed this on the trunk after bootstrapping and
regression testing on x86_64-unknown-linux-gnu
In the future, please do a bootstrap & regression test when submitting
patches and indicate which platform you did the testing on.
In essence the process looks like
make
make check
<save various .sum files>
<apply patch>
make clean
make
make check
<compare .sum files>
It seems tedious for simple patches, but the requirements for
bootstrapping and regression testing keep the tip of the trunk from
getting broken too often (which is very costly for everyone when it occurs).
You also need to provide a ChangeLog entry. The details of what belongs
in a ChangeLog are on the web site. Here's an example for your patch:
2014-07-31 Chen Gang <gang.chen.5...@gmail.com>
* gcc.c (do_spec_1): Allocate enough space for saved_suffix.
Thanks,
Jeff