From 789691778fde0e792377b631e2c076f449ce6515 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 19 Dec 2017 10:35:53 +0100 Subject: [PATCH] BUG/MEDIUM: mworker: Set FD_CLOEXEC flag on log fd A log socket (UDP or UNIX) is opened by the master during its startup, when the first log message is sent. So, to prevent FD leaks, we must ensure we correctly close it during a reload. By setting FD_CLOEXEC bit on it, we are sure it will be automatically closed it during a reload. This patch must be backported in 1.8. --- src/log.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/log.c b/src/log.c index 0b8467f33..de775af45 100644 --- a/src/log.c +++ b/src/log.c @@ -1176,6 +1176,7 @@ void __send_log(struct proxy *p, int level, char *message, size_t size, char *sd setsockopt(*plogfd, SOL_SOCKET, SO_RCVBUF, &zero, sizeof(zero)); /* does nothing under Linux, maybe needed for others */ shutdown(*plogfd, SHUT_RD); + fcntl(*plogfd, F_SETFD, fcntl(*plogfd, F_GETFD, FD_CLOEXEC) | FD_CLOEXEC); } switch (logsrv->format) {