logread: ensure that the len < sizeof(struct blob_attr) check runs before trying...
[project/ubox.git] / log / syslog.c
index fcc4a74..e8b6774 100644 (file)
@@ -66,7 +66,7 @@ log_add(char *buf, int size, int source)
 
        /* bounce out if we don't have init'ed yet (regmatch etc will blow) */
        if (!log) {
-               fprintf(stderr, buf);
+               fprintf(stderr, "%s", buf);
                return;
        }
 
@@ -203,7 +203,7 @@ syslog_open(void)
        int fd;
 
        unlink(log_dev);
-       fd = usock(USOCK_UNIX | USOCK_UDP |  USOCK_SERVER | USOCK_NONBLOCK, log_dev, NULL);
+       fd = usock(USOCK_UNIX | USOCK_UDP | USOCK_SERVER | USOCK_NONBLOCK, log_dev, NULL);
        if (fd < 0) {
                fprintf(stderr,"Failed to open %s\n", log_dev);
                return -1;
@@ -274,8 +274,11 @@ log_buffer_init(int size)
 }
 
 void
-log_init(void)
+log_init(int _log_size)
 {
+       if (_log_size > 0)
+               log_size = _log_size;
+
        regcomp(&pat_prio, "^<([0-9]*)>(.*)", REG_EXTENDED);
        regcomp(&pat_tstamp, "^\[[ 0]*([0-9]*).([0-9]*)] (.*)", REG_EXTENDED);
 
@@ -296,4 +299,5 @@ log_shutdown(void)
        ustream_free(&klog.stream);
        close(slog.fd.fd);
        close(klog.fd.fd);
+       free(log);
 }