diff --git a/src/error.c b/src/error.c index 6e6a96311727a16863e5daca523e85a4c277ed7f..c8bd289d709f7f53679feee8ac2f68db590801ad 100644 --- a/src/error.c +++ b/src/error.c @@ -16,7 +16,7 @@ #include "backend.h" #include "operators.h" -RCSID("$Id: error.c,v 1.18 1998/04/16 21:30:50 hubbe Exp $"); +RCSID("$Id: error.c,v 1.19 1998/05/15 18:45:37 grubba Exp $"); #undef ATTRIBUTE #define ATTRIBUTE(X) @@ -98,7 +98,7 @@ static const char *in_error; */ void va_error(const char *fmt, va_list args) ATTRIBUTE((noreturn)) { - char buf[2000]; + char buf[4096]; if(in_error) { const char *tmp=in_error; @@ -108,7 +108,11 @@ void va_error(const char *fmt, va_list args) ATTRIBUTE((noreturn)) in_error=buf; +#ifdef HAVE_VSNPRINTF + vsnprintf(bug, 4090, fmt, args); +#else /* !HAVE_VSNPRINTF */ VSPRINTF(buf, fmt, args); +#endif /* HAVE_VSNPRINTF */ if(!recoveries) { diff --git a/src/program.c b/src/program.c index 70152d3dfc8e5df5674488812093190a0d241e7d..148ce571ba64f638849134f2f96f40351babfad9 100644 --- a/src/program.c +++ b/src/program.c @@ -4,7 +4,7 @@ ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" -RCSID("$Id: program.c,v 1.89 1998/04/29 00:21:13 hubbe Exp $"); +RCSID("$Id: program.c,v 1.90 1998/05/15 18:43:45 grubba Exp $"); #include "program.h" #include "object.h" #include "dynamic_buffer.h" @@ -2114,8 +2114,14 @@ void my_yyerror(char *fmt,...) ATTRIBUTE((format(printf,1,2))) { va_list args; char buf[8192]; + va_start(args,fmt); - VSPRINTF(buf,fmt,args); + +#ifdef HAVE_VSNPRINTF + vsnprintf(buf, 8190, fmt, args); +#else /* !HAVE_VSNPRINTF */ + VSPRINTF(buf, fmt, args); +#endif /* HAVE_VSNPRINTF */ if((long)strlen(buf) >= (long)sizeof(buf)) fatal("Buffer overflow in my_yyerror.\n");