aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gcc.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5a283f9..ac9cee0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-08-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
+
+ * gcc.c (make_relative_prefix): Allocate a sufficiently large
+ buffer.
+
2001-08-20 Richard Henderson <rth@redhat.com>
* final.c (end_final): Fix typo last change.
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 47cfa2e..99a5c3c 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2285,8 +2285,12 @@ make_relative_prefix (progname, bin_prefix, prefix)
GET_ENV_PATH_LIST (temp, "PATH");
if (temp)
{
- char *startp, *endp;
- char *nstore = (char *) alloca (strlen (temp) + strlen (progname) + 1);
+ char *startp, *endp, *nstore;
+ size_t prefixlen = strlen (temp) + 1;
+ if (prefixlen < 2)
+ prefixlen = 2;
+
+ nstore = (char *) alloca (prefixlen + strlen (progname) + 1);
startp = endp = temp;
while (1)