chiark / gitweb /
Security: Reduce impact of bogus key setup packet DoS
[secnet.git] / log.c
diff --git a/log.c b/log.c
index 32aed704b06e20e595ef366661426103fac6342f..6f4b7380198e7ad37dbf367d36b43b39a704e979 100644 (file)
--- a/log.c
+++ b/log.c
@@ -8,6 +8,7 @@
 #include <assert.h>
 #include <unistd.h>
 #include "process.h"
+#include "util.h"
 
 bool_t secnet_is_daemon=False;
 uint32_t message_level=M_WARNING|M_ERR|M_SECURITY|M_FATAL;
@@ -18,17 +19,18 @@ static void vMessage(uint32_t class, const char *message, va_list args)
     FILE *dest=stdout;
 #define MESSAGE_BUFLEN 1023
     static char buff[MESSAGE_BUFLEN+1]={0,};
-    uint32_t bp;
+    size_t bp;
     char *nlp;
 
     if (secnet_is_daemon) {
        /* Messages go to the system log interface */
        bp=strlen(buff);
+       assert(bp < MESSAGE_BUFLEN);
        vsnprintf(buff+bp,MESSAGE_BUFLEN-bp,message,args);
        /* Each line is sent separately */
        while ((nlp=strchr(buff,'\n'))) {
            *nlp=0;
-           slilog(system_log,class,buff);
+           slilog(system_log,class,"%s",buff);
            memmove(buff,nlp+1,strlen(nlp+1)+1);
        }
     } else {
@@ -486,8 +488,7 @@ struct fdlog {
 };
 
 static int log_from_fd_beforepoll(void *sst, struct pollfd *fds, int *nfds_io,
-                                 int *timeout_io,
-                                 const struct timeval *tv_now, uint64_t *now)
+                                 int *timeout_io)
 {
     struct fdlog *st=sst;
     if (!st->finished) {
@@ -498,8 +499,7 @@ static int log_from_fd_beforepoll(void *sst, struct pollfd *fds, int *nfds_io,
     return 0;
 }
 
-static void log_from_fd_afterpoll(void *sst, struct pollfd *fds, int nfds,
-                                 const struct timeval *tv_now, uint64_t *now)
+static void log_from_fd_afterpoll(void *sst, struct pollfd *fds, int nfds)
 {
     struct fdlog *st=sst;
     int r,remain,i;
@@ -554,7 +554,6 @@ void log_from_fd(int fd, cstring_t prefix, struct log_if *log)
                      prefix);
 }
 
-init_module log_module;
 void log_module(dict_t *dict)
 {
     add_closure(dict,"logfile",logfile_apply);