diff --git a/src/server/log.c b/src/server/log.c index 8b017a6..3f7f6c9 100644 --- a/src/server/log.c +++ b/src/server/log.c @@ -70,11 +70,14 @@ log_init(stbbr_log_t loglevel) void log_println(stbbr_log_t loglevel, const char * const msg, ...) { - if (!logready || loglevel < minlevel) { + pthread_mutex_lock(&loglock); + + // Check logready AFTER acquiring lock to prevent race with log_close + if (!logready || !logp || loglevel < minlevel) { + pthread_mutex_unlock(&loglock); return; } - pthread_mutex_lock(&loglock); va_list arg; va_start(arg, msg); GString *fmt_msg = g_string_new(NULL);