diff options
| author | Dean Prichard <dean.prichard@gmail.com> | 2010-03-08 17:00:14 -0800 |
|---|---|---|
| committer | Dean Prichard <dean.prichard@gmail.com> | 2010-03-08 17:00:14 -0800 |
| commit | ce67dd74522083f9fabe45cc9fc014976ae1b410 (patch) | |
| tree | cea15a9fa177f7216ea9ae016fe535a748ab1e5c | |
| parent | 1bb69991e8f3dfc5acae2124abd1852c32788e9a (diff) | |
| download | golang-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.c | 5 |
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); } |
