From: Christopher Faulet Date: Tue, 19 Dec 2017 09:35:53 +0000 (+0100) Subject: BUG/MEDIUM: mworker: Set FD_CLOEXEC flag on log fd X-Git-Tag: v1.9-dev1~576 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=789691778fde0e792377b631e2c076f449ce6515;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/log.c b/src/log.c index 0b8467f336..de775af45b 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) {