Fix: close all file descriptors when executed as daemon
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 4 Jun 2012 22:08:24 +0000 (18:08 -0400)
committerDavid Goulet <dgoulet@efficios.com>
Thu, 7 Jun 2012 16:36:11 +0000 (12:36 -0400)
commita360b16d020bad284e0d17efcb64a7dc8a0932dc
tree74b73ec04d0e03881b77ae43b16ff0e0bf326533
parent9fbaebcf83861abd543c148b4ab0042aa374a0e1
Fix: close all file descriptors when executed as daemon

Both sessiond and consumerd support the option "-d" to run as daemon. In
some specific cases, e.g. when launched from dpkg installation scripts,
file descriptors 3, 4, 5 are left open and don't seem to have O_CLOEXEC
flag set, so the install script hangs because the sessiond still holds a
reference to them. daemon(3) only closes standard FD 0, 1, 2.

Fix this issue by closing all file descriptors after calling daemon(3).
Note: we make sure no file descriptor is opened before calling daemon(3)
by moving the init_thread_quit_pipe() call after the FD close.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
src/bin/lttng-consumerd/lttng-consumerd.c
src/bin/lttng-sessiond/main.c
This page took 0.025226 seconds and 4 git commands to generate.