getservbyport_r: fix out-of-bounds buffer read
[musl] / src / misc / syslog.c
index 9dd1ddb..7dc0c1b 100644 (file)
@@ -9,14 +9,16 @@
 #include <pthread.h>
 #include <errno.h>
 #include <fcntl.h>
-#include "libc.h"
+#include "lock.h"
+#include "fork_impl.h"
 
-static volatile int lock[2];
+static volatile int lock[1];
 static char log_ident[32];
 static int log_opt;
 static int log_facility = LOG_USER;
 static int log_mask = 0xff;
 static int log_fd = -1;
+volatile int *const __syslog_lockptr = lock;
 
 int setlogmask(int maskpri)
 {
@@ -122,7 +124,7 @@ static void _vsyslog(int priority, const char *message, va_list ap)
        }
 }
 
-void __vsyslog(int priority, const char *message, va_list ap)
+static void __vsyslog(int priority, const char *message, va_list ap)
 {
        int cs;
        if (!(log_mask & LOG_MASK(priority&7)) || (priority&~0x3ff)) return;