From: George Joseph Date: Thu, 10 Dec 2020 15:09:52 +0000 (-0700) Subject: logger.c: Automatically add a newline to formats that don't have one X-Git-Tag: 19.0.0-rc1~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d4ae7dc18fa4f06deab4089e15f9032912c2280;p=thirdparty%2Fasterisk.git logger.c: Automatically add a newline to formats that don't have one Scope tracing allows you to not specify a format string or variable, in which case it just prints the indent, file, function, and line number. The trace output automatically adds a newline to the end in this case. If you also have debugging turned on for the module, a debug message is also printed but the standard log functionality which prints it doesn't add the newline so you have messages that don't break correctly. * format_log_message_ap(), which is the common log message formatter for all channels, now adds a newline to the end of format strings that don't already have a newline. ASTERISK-29209 Reported by: Alexander Traud Change-Id: I994a7df27f88df343b7d19f3e81a4b562d9d41da --- diff --git a/main/logger.c b/main/logger.c index 067f9a9919..5562bf37eb 100644 --- a/main/logger.c +++ b/main/logger.c @@ -1672,6 +1672,11 @@ static struct logmsg * __attribute__((format(printf, 7, 0))) format_log_message_ return NULL; } + /* Automatically add a newline to format strings that don't have one */ + if (!ast_ends_with(ast_str_buffer(buf), "\n")) { + ast_str_append(&buf, 0, "\n"); + } + /* Create a new logging message */ if (!(logmsg = ast_calloc_with_stringfields(1, struct logmsg, res + 128))) { return NULL;