diff --git a/log.c b/log.c index 70851e0..3ca0dc8 100644 --- a/log.c +++ b/log.c @@ -28,14 +28,20 @@ void verbose(const char * fmt, ...) { char *msg = NULL; va_list ap; va_start(ap, fmt); - vasprintf(&msg, fmt, ap); - va_end(ap); - if(FORKED) { - syslog(LOG_INFO, msg); + if(vasprintf(&msg, fmt, ap) >= 0) { + va_end(ap); + + if(FORKED) { + syslog(LOG_INFO, "%s", msg); + } + else { + fprintf(stderr, "%s", msg); + } } else { - fprintf(stderr, msg); + fprintf(stderr, "Fatal: could not store log message!\n"); + exit(1); } } } diff --git a/log.h b/log.h index 7b7a420..29b68f0 100644 --- a/log.h +++ b/log.h @@ -23,6 +23,7 @@ #define _HAVE_LOG_H #define _WITH_DPRINTF +#define _GNU_SOURCE #include #include