@ -97,6 +97,11 @@ static int logger_queue_limit = 1000;
static int logger_messages_discarded ;
static unsigned int high_water_alert ;
/* On some platforms, like those with MUSL as the runtime, BUFSIZ is
* unreasonably small ( 1024 ) . Use a larger value in those environments .
*/
# define LOGMSG_SIZE MAX(BUFSIZ, 8192)
static enum rotatestrategy {
NONE = 0 , /* Do not rotate log files at all, instead rely on external mechanisms */
SEQUENTIAL = 1 < < 0 , /* Original method - create a new file, in order */
@ -1665,7 +1670,7 @@ static struct sigaction handle_SIGXFSZ = {
static void logger_print_normal ( struct logmsg * logmsg )
{
struct logchannel * chan = NULL ;
char buf [ BUFSIZ ] ;
char buf [ LOGMSG_SIZE ] ;
int level = 0 ;
AST_RWLIST_RDLOCK ( & logchannels ) ;
@ -1698,13 +1703,13 @@ static void logger_print_normal(struct logmsg *logmsg)
/* Don't use LOG_MAKEPRI because it's broken in glibc<2.17 */
syslog_level = chan - > facility | syslog_level ; /* LOG_MAKEPRI(chan->facility, syslog_level); */
if ( ! chan - > formatter . format_log ( chan , logmsg , buf , BUFSIZ ) ) {
if ( ! chan - > formatter . format_log ( chan , logmsg , buf , sizeof ( buf ) ) ) {
syslog ( syslog_level , " %s " , buf ) ;
}
}
break ;
case LOGTYPE_CONSOLE :
if ( ! chan - > formatter . format_log ( chan , logmsg , buf , BUFSIZ ) ) {
if ( ! chan - > formatter . format_log ( chan , logmsg , buf , sizeof ( buf ) ) ) {
ast_console_puts_mutable_full ( buf , logmsg - > level , logmsg - > sublevel ) ;
}
break ;
@ -1716,7 +1721,7 @@ static void logger_print_normal(struct logmsg *logmsg)
continue ;
}
if ( chan - > formatter . format_log ( chan , logmsg , buf , BUFSIZ ) ) {
if ( chan - > formatter . format_log ( chan , logmsg , buf , sizeof ( buf ) ) ) {
continue ;
}
@ -1780,7 +1785,7 @@ static struct logmsg * __attribute__((format(printf, 7, 0))) format_log_message_
}
/* Build string */
res = ast_str_set_va ( & buf , BUFSIZ , fmt , ap ) ;
res = ast_str_set_va ( & buf , LOGMSG_SIZE , fmt , ap ) ;
/* If the build failed, then abort and free this structure */
if ( res = = AST_DYNSTR_BUILD_FAILED ) {