From da127cbb3eb5674b09fa195d09b047f0b2914b7f Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 2 Jul 2011 21:51:32 +0200 Subject: [PATCH] fix against corrupted output in parallel logging In 825607672215b7a12ea6e201a89cd5209f6d657f it was attempted to fix a bug previously introduced by logging related changes. The problem is that a va_list can be corrupted after it has been used once, so we need to va_copy before each successive use. And if we copy it, we also need to use the copy, and not the original ;) --- src/logging.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logging.c b/src/logging.c index 730fc37..948b2a6 100644 --- a/src/logging.c +++ b/src/logging.c @@ -261,7 +261,7 @@ static void _logp(int subsys, int level, char *file, int line, * in undefined state. Since _output uses vsnprintf and it may * be called several times, we have to pass a copy of ap. */ va_copy(bp, ap); - _output(tar, subsys, level, file, line, cont, format, ap); + _output(tar, subsys, level, file, line, cont, format, bp); va_end(bp); } } -- 2.20.1