From ea0be752d9e147d2fce51e0a02c64e0fce7db57c Mon Sep 17 00:00:00 2001 From: lav <> Date: Mon, 1 Oct 2001 08:13:05 +0000 Subject: [PATCH] 2001-10-01 Aaron Schrab * Fish.cc, Http.cc, commands.cc, log.cc: call va_start multiple times when needed, fixes powerpc coredumps. --- src/ChangeLog | 5 +++++ src/Fish.cc | 4 ++-- src/Http.cc | 4 ++-- src/commands.cc | 6 +++--- src/log.cc | 4 ++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4fd922e71..0b84b7751 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-10-01 Aaron Schrab + + * Fish.cc, Http.cc, commands.cc, log.cc: call va_start multiple + times when needed, fixes powerpc coredumps. + 2001-09-12 Alexander V. Lukyanov * ftpclass.cc: sometimes CWD was not sent after reconnection diff --git a/src/Fish.cc b/src/Fish.cc index e7358fbd7..7ed09e57d 100644 --- a/src/Fish.cc +++ b/src/Fish.cc @@ -430,12 +430,12 @@ void Fish::Close() void Fish::Send(const char *format,...) { va_list va; - va_start(va,format); char *str; static int max_send=256; for(;;) { + va_start(va,format); str=string_alloca(max_send); int res=vsnprintf(str,max_send,format,va); if(res>=0 && res ",str,5); send_buf->Put(str); - va_end(va); } const char *Fish::shell_encode(const char *string) diff --git a/src/Http.cc b/src/Http.cc index 830497349..7c2058f81 100644 --- a/src/Http.cc +++ b/src/Http.cc @@ -249,12 +249,12 @@ void Http::Close() void Http::Send(const char *format,...) { va_list va; - va_start(va,format); char *str; static int max_send=256; for(;;) { + va_start(va,format); str=string_alloca(max_send); int res=vsnprintf(str,max_send,format,va); if(res>=0 && res ",str,5); send_buf->Put(str); - va_end(va); } void Http::SendMethod(const char *method,const char *efile) diff --git a/src/commands.cc b/src/commands.cc index dd7c3bcd9..604a2b9a1 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -957,7 +957,7 @@ Job *CmdExec::builtin_queue() * We want an optional argument, but don't use getopt ::, since * that'll disallow the space between arguments, which we want. */ arg = args->getarg(args->getindex()); - + CmdExec *queue=GetQueue(false); if(!queue) { eprintf(_("%s: No queue is active.\n"), args->a0()); @@ -2471,14 +2471,14 @@ CMD(history) switch(mode) { case READ: if(int err = lftp_history_read(fn)) { - eprintf(_("%s: %s: %s\n"), args->a0(), fn, strerror(err)); + eprintf("%s: %s: %s\n", args->a0(), fn, strerror(err)); exit_code=1; } break; case WRITE: if(int err = lftp_history_write(fn)) { - eprintf(_("%s: %s: %s\n"), args->a0(), fn, strerror(err)); + eprintf("%s: %s: %s\n", args->a0(), fn, strerror(err)); exit_code=1; } break; diff --git a/src/log.cc b/src/log.cc index bc4d25cf7..9b2314234 100644 --- a/src/log.cc +++ b/src/log.cc @@ -74,13 +74,13 @@ void Log::Format(int l,const char *f,...) static char *buf=0; static int buf_alloc; va_list v; - va_start(v,f); if(buf==0) buf=(char*)xmalloc(buf_alloc=1024); for(;;) { + va_start(v,f); int res=vsnprintf(buf,buf_alloc,f,v); if(res>=0 && res