When 'is_str' is true, need consider about 2 '"' for the extra space, or will cause memory overflow.
2014-11-16 Chen Gang <gang.chen.5...@gmail.com> * c-family/c-cppbuiltin.c (builtin_define_with_value): Add two bytes for avoiding memory overflow issue. --- gcc/c-family/c-cppbuiltin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c index 8e8cec4..cc3d90b 100644 --- a/gcc/c-family/c-cppbuiltin.c +++ b/gcc/c-family/c-cppbuiltin.c @@ -1282,7 +1282,7 @@ builtin_define_with_value (const char *macro, const char *expansion, int is_str) char *buf; size_t mlen = strlen (macro); size_t elen = strlen (expansion); - size_t extra = 2; /* space for an = and a NUL */ + size_t extra = 4; /* space for an =, a NUL, and 2 '"' when is_str is true */ if (is_str) { -- 1.9.3