aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDean Prichard <dean.prichard@gmail.com>2010-01-22 16:59:17 -0800
committerRuss Cox <rsc@golang.org>2010-01-22 16:59:17 -0800
commit07d3e0dce46ce438c7b07949d0e1725d6860e40d (patch)
tree7fb457302bfb655ac216f5597fc2f6fb07dfa664 /src
parent31fb879ec2759e911c1cd15fdf4112c25ffd7ee8 (diff)
downloadgo-07d3e0dce46ce438c7b07949d0e1725d6860e40d.tar.xz
5a/6a/8a: avoid fixed-sized file name buffer
R=rsc CC=golang-dev https://golang.org/cl/186279
Diffstat (limited to 'src')
-rw-r--r--src/cmd/5a/lex.c3
-rw-r--r--src/cmd/6a/a.h1
-rw-r--r--src/cmd/6a/lex.c3
-rw-r--r--src/cmd/8a/a.h1
-rw-r--r--src/cmd/8a/lex.c3
5 files changed, 8 insertions, 3 deletions
diff --git a/src/cmd/5a/lex.c b/src/cmd/5a/lex.c
index 44ce3bb403..540c12af59 100644
--- a/src/cmd/5a/lex.c
+++ b/src/cmd/5a/lex.c
@@ -139,9 +139,10 @@ main(int argc, char *argv[])
int
assemble(char *file)
{
- char ofile[100], incfile[20], *p;
+ char *ofile, incfile[20], *p;
int i, of;
+ ofile = alloc(strlen(file)+3); // +3 for .x\0 (x=thechar)
strcpy(ofile, file);
p = utfrrune(ofile, '/');
if(p) {
diff --git a/src/cmd/6a/a.h b/src/cmd/6a/a.h
index 11ace63899..f1a0453156 100644
--- a/src/cmd/6a/a.h
+++ b/src/cmd/6a/a.h
@@ -168,6 +168,7 @@ EXTERN char* thestring;
EXTERN int32 thunk;
EXTERN Biobuf obuf;
+void* alloc(int32);
void* allocn(void*, int32, int32);
void errorexit(void);
void pushio(void);
diff --git a/src/cmd/6a/lex.c b/src/cmd/6a/lex.c
index 7621021c4f..a1814b0805 100644
--- a/src/cmd/6a/lex.c
+++ b/src/cmd/6a/lex.c
@@ -139,9 +139,10 @@ main(int argc, char *argv[])
int
assemble(char *file)
{
- char ofile[100], incfile[20], *p;
+ char *ofile, incfile[20], *p;
int i, of;
+ ofile = alloc(strlen(file)+3); // +3 for .x\0 (x=thechar)
strcpy(ofile, file);
p = utfrrune(ofile, pathchar());
if(p) {
diff --git a/src/cmd/8a/a.h b/src/cmd/8a/a.h
index bf0fc77083..c019ce4d66 100644
--- a/src/cmd/8a/a.h
+++ b/src/cmd/8a/a.h
@@ -169,6 +169,7 @@ EXTERN char* thestring;
EXTERN int32 thunk;
EXTERN Biobuf obuf;
+void* alloc(int32);
void* allocn(void*, int32, int32);
void errorexit(void);
void pushio(void);
diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c
index a426713427..a00ac49f6c 100644
--- a/src/cmd/8a/lex.c
+++ b/src/cmd/8a/lex.c
@@ -138,9 +138,10 @@ main(int argc, char *argv[])
int
assemble(char *file)
{
- char ofile[100], incfile[20], *p;
+ char *ofile, incfile[20], *p;
int i, of;
+ ofile = alloc(strlen(file)+3); // +3 for .x\0 (x=thechar)
strcpy(ofile, file);
p = utfrrune(ofile, pathchar());
if(p) {