diff --git a/log.c b/log.c
index 1dacac4..ec3ebce 100644
--- a/log.c
+++ b/log.c
@@ -8,16 +8,17 @@
 
 int log_valist(const char *str, va_list args)
 {
-	if (log_syslog) {
-		vsyslog(LOG_INFO, str, args);
-		return 0;
-	} else {
-		char buffer[1024];
-		size_t len;
+	char buffer[1024];
+	size_t len;
 
-		len = vsnprintf(buffer, sizeof(buffer), str, args);
-		return fwrite(buffer, len, 1, f_out);
-	}
+	len = vsnprintf(buffer, sizeof(buffer), str, args);
+
+	if (log_syslog)
+		syslog(LOG_INFO, "%s", buffer);
+	else
+		len = fwrite(buffer, len, 1, f_out);
+
+	return len;
 }
 
 int log_local(const char *format, ...)
@@ -27,16 +28,15 @@
 	size_t len;
 
 	va_start(args, format);
+	len = vsnprintf(buffer, sizeof(buffer), format, args);
+	va_end(args);
 
-	if (log_syslog) {
-		vsyslog(LOG_INFO, format, args);
-		va_end(args);
-		return 0;
-	} else {
-		len = vsnprintf(buffer, sizeof(buffer), format, args);
-		va_end(args);
-		return fwrite(buffer, len, 1, f_out);
-	}
+	if (log_syslog)
+		syslog(LOG_INFO, "%s", buffer);
+	else
+		len = fwrite(buffer, len, 1, f_out);
+
+	return len;
 }
 
 int log_info(const char *format, ...)
