From ae47b9135bd6410f9f9d9fc0b8c62c6c7b73f841 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Thu, 29 Jan 2009 17:04:24 +0000 Subject: [PATCH] avoid obstack_printf for very large strings (it's cheating with a fixed size buffer) [r25395] --- main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 6e55b36..b4600e7 100644 --- a/main.c +++ b/main.c @@ -232,7 +232,7 @@ static void lextest(FILE *in, const char *fname) static void add_flag(struct obstack *obst, const char *format, ...) { - char buf[4096]; + char buf[65536]; va_list ap; va_start(ap, format); @@ -318,7 +318,9 @@ static FILE *preprocess(const char *fname) } } if (flags[0] != '\0') { - obstack_printf(&cppflags_obst, " %s", flags); + size_t len = strlen(flags); + obstack_1grow(&cppflags_obst, ' '); + obstack_grow(&cppflags_obst, flags, len); } add_flag(&cppflags_obst, fname); @@ -339,7 +341,7 @@ static FILE *preprocess(const char *fname) static void assemble(const char *out, const char *in) { - char buf[4096]; + char buf[65536]; snprintf(buf, sizeof(buf), "%s %s -o %s", ASSEMBLER, in, out); if (verbose) { -- 2.20.1