From 07d3e0dce46ce438c7b07949d0e1725d6860e40d Mon Sep 17 00:00:00 2001 From: Dean Prichard Date: Fri, 22 Jan 2010 16:59:17 -0800 Subject: [PATCH] 5a/6a/8a: avoid fixed-sized file name buffer R=rsc CC=golang-dev https://golang.org/cl/186279 --- src/cmd/5a/lex.c | 3 ++- src/cmd/6a/a.h | 1 + src/cmd/6a/lex.c | 3 ++- src/cmd/8a/a.h | 1 + src/cmd/8a/lex.c | 3 ++- 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) { -- 2.48.1