aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorScott Snyder <snyder@fnal.gov>1998-02-08 15:46:23 -0700
committerJeff Law <law@gcc.gnu.org>1998-02-08 15:46:23 -0700
commitaea955a2dfe37f7f7c82f36ff0cf018695bc2b70 (patch)
treedf37068a7dd366e5821117709b1e73e7186b7acd /gcc
parent13309a5ff9a8c17bdc2c5b1ff072843800516579 (diff)
downloadgcc-aea955a2dfe37f7f7c82f36ff0cf018695bc2b70.zip
gcc-aea955a2dfe37f7f7c82f36ff0cf018695bc2b70.tar.gz
gcc-aea955a2dfe37f7f7c82f36ff0cf018695bc2b70.tar.bz2
* method.c (make_thunk): Avoid name buffer overflow.
From-SVN: r17784
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/method.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index eac96d2..6446d6a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+Sun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov>
+
+ * method.c (make_thunk): Avoid name buffer overflow.
+
Sat Feb 7 16:48:54 1998 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 30ddf52..e489348 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1905,7 +1905,7 @@ make_thunk (function, delta)
tree function;
int delta;
{
- char buffer[250];
+ char *buffer;
tree thunk_id;
tree thunk;
char *func_name;
@@ -1916,6 +1916,7 @@ make_thunk (function, delta)
if (TREE_CODE (func_decl) != FUNCTION_DECL)
abort ();
func_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (func_decl));
+ buffer = (char *)alloca (strlen (func_name) + 32);
if (delta<=0)
sprintf (buffer, "__thunk_%d_%s", -delta, func_name);
else