summaryrefslogtreecommitdiffstats
path: root/lib/pid_output.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2016-11-08 20:46:05 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2016-11-09 13:40:05 +0100
commit2da59394ec858ae5aecf2b26ab8d9fefdae17bb8 (patch)
tree720795e72480f81c7f1cbabe1445bbd4ba8acc1c /lib/pid_output.c
parentModify build version. (diff)
downloadfrr-2da59394ec858ae5aecf2b26ab8d9fefdae17bb8.tar.xz
frr-2da59394ec858ae5aecf2b26ab8d9fefdae17bb8.zip
lib: add and use set_cloexec()
watchquagga is already leaking an open file descriptor on its pid file on fork+exec() invocations; next up is adding vtysh support with even more fds. Mark things CLOEXEC before going there. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'lib/pid_output.c')
-rw-r--r--lib/pid_output.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/pid_output.c b/lib/pid_output.c
index 5261babc6..de4c2fba9 100644
--- a/lib/pid_output.c
+++ b/lib/pid_output.c
@@ -24,6 +24,7 @@
#include <fcntl.h>
#include <log.h>
#include "version.h"
+#include "network.h"
#define PIDFILE_MASK 0644
#ifndef HAVE_FCNTL
@@ -84,6 +85,8 @@ pid_output (const char *path)
umask(oldumask);
memset (&lock, 0, sizeof(lock));
+ set_cloexec(fd);
+
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;