summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDean Prichard <dean.prichard@gmail.com>2010-03-08 17:00:14 -0800
committerDean Prichard <dean.prichard@gmail.com>2010-03-08 17:00:14 -0800
commitce67dd74522083f9fabe45cc9fc014976ae1b410 (patch)
treecea15a9fa177f7216ea9ae016fe535a748ab1e5c
parent1bb69991e8f3dfc5acae2124abd1852c32788e9a (diff)
downloadgolang-ce67dd74522083f9fabe45cc9fc014976ae1b410.tar.gz
gc: avoid fixed length buffer cleanbuf
R=rsc CC=golang-dev http://codereview.appspot.com/302042 Committer: Russ Cox <rsc@golang.org>
-rw-r--r--src/cmd/gc/lex.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c
index ccde1c4da..c3a430665 100644
--- a/src/cmd/gc/lex.c
+++ b/src/cmd/gc/lex.c
@@ -290,7 +290,7 @@ importfile(Val *f, int line)
int32 c;
int len;
Strlit *path;
- char cleanbuf[1024];
+ char *cleanbuf;
// TODO(rsc): don't bother reloading imports more than once?
@@ -310,7 +310,8 @@ importfile(Val *f, int line)
path = f->u.sval;
if(islocalname(path)) {
- snprint(cleanbuf, sizeof cleanbuf, "%s/%s", pathname, path->s);
+ cleanbuf = mal(strlen(pathname) + strlen(path->s) + 2);
+ sprint(cleanbuf, "%s/%s", pathname, path->s);
cleanname(cleanbuf);
path = strlit(cleanbuf);
}