]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/commitdiff
log.c: Prevent intermingled output from multiple log_message().
authorSimon Ruderich <simon@ruderich.org>
Sun, 28 Jul 2013 10:21:21 +0000 (12:21 +0200)
committerSimon Ruderich <simon@ruderich.org>
Sun, 28 Jul 2013 10:21:21 +0000 (12:21 +0200)
src/log.c

index 05bd3dcea94eeb455112fb8747dc635a6f592401..05acddfc8b98b5d8fcb37f89f1974b47d32c59b1 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -45,6 +45,9 @@ void log_message(int level, const char *file, int line, const char *format, ...)
     (void)line;
 #endif
 
+    /* Prevent another thread from interrupting the two printfs(). */
+    flockfile(stdout);
+
     fprintf(stdout,
 #ifdef DEBUG
             "%-12s:%-3d "
@@ -58,4 +61,6 @@ void log_message(int level, const char *file, int line, const char *format, ...)
     vfprintf(stdout, format, ap);
     va_end(ap);
     fprintf(stdout, "\n");
+
+    funlockfile(stdout);
 }