From 50bc25a23cfb2c9f3708cfdb3e2787ddf3d5ab34 Mon Sep 17 00:00:00 2001 From: Stefano Brivio Date: Tue, 7 Nov 2023 12:17:07 +0100 Subject: [PATCH] log: Match implicit va_start() with va_end() in vlogmsg() According to C99, 7.15.1: Each invocation of the va_start and va_copy macros shall be matched by a corresponding invocation of the va_end macro in the same function and the same applies to C11. I still have to come across a platform where va_end() actually does something, but thus spake the standard. This would be reported by Coverity as "Missing varargs init or cleanup" (CWE-573). Fixes: c0426ff10bc9 ("log: Add vlogmsg()") Signed-off-by: Stefano Brivio --- log.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/log.c b/log.c index 95c4fa4..b206f72 100644 --- a/log.c +++ b/log.c @@ -67,6 +67,8 @@ void vlogmsg(int pri, const char *format, va_list ap) logfile_write(pri, format, ap2); else if (!(setlogmask(0) & LOG_MASK(LOG_DEBUG))) passt_vsyslog(pri, format, ap2); + + va_end(ap2); } if ((setlogmask(0) & LOG_MASK(LOG_DEBUG) && log_file == -1) ||