about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/misc/syslog.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/misc/syslog.c b/src/misc/syslog.c
index 57f1d75c..cc82508d 100644
--- a/src/misc/syslog.c
+++ b/src/misc/syslog.c
@@ -45,8 +45,12 @@ void closelog(void)
 
 static void __openlog()
 {
-	log_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
-	if (log_fd >= 0) connect(log_fd, (void *)&log_addr, sizeof log_addr);
+	int fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
+	if (fd < 0) return;
+	if (connect(fd, (void *)&log_addr, sizeof log_addr) < 0)
+		close(fd);
+	else
+		log_fd = fd;
 }
 
 void openlog(const char *ident, int opt, int facility)