From 7e5dcea8311472156ed0fea164e689777353f931 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 19 Aug 2007 02:50:18 -0700 Subject: fast-import pull request * skip_optional_lf() decl is old-style -- please say static skip_optional_lf(void) { ... } * t9300 #14 fails, like this: * expecting failure: git-fast-import 8 -- Subject: [PATCH] fastimport: Fix re-use of va_list The va_list is designed to be used only once. The current code reuses va_list argument may cause segmentation fault. Copy and release the arguments to avoid this problem. While we are at it, fix old-style function declaration of skip_optional_lf(). Signed-off-by: Junio C Hamano Signed-off-by: Shawn O. Pearce diff --git a/fast-import.c b/fast-import.c index 5085fbf..2d5224c 100644 --- a/fast-import.c +++ b/fast-import.c @@ -442,16 +442,18 @@ static void write_crash_report(const char *err, va_list params) static NORETURN void die_nicely(const char *err, va_list params) { static int zombie; + va_list x_params; + va_copy(x_params, params); fputs("fatal: ", stderr); vfprintf(stderr, err, params); fputc('\n', stderr); if (!zombie) { zombie = 1; - write_crash_report(err, params); + write_crash_report(err, x_params); } - + va_end(x_params); exit(128); } @@ -1618,7 +1620,7 @@ static void read_next_command(void) } while (command_buf.buf[0] == '#'); } -static void skip_optional_lf() +static void skip_optional_lf(void) { int term_char = fgetc(stdin); if (term_char != '\n' && term_char != EOF) -- cgit v0.10.2-6-g49f6