uuidd: Avoid closing the server socket when calling create_daemon()

In the event that file descriptors 0-2 are closed when uuidd is
started, the server socket could be created as a file descriptor that
will get closed when create_daemon() tries detaching the uuidd daemon
from its controlling tty.   Avoid this case by using dup(2).

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
Theodore Ts'o 2009-06-30 22:47:54 -04:00
parent 59ca44715a
commit fdb3e93ce9
1 changed files with 12 additions and 0 deletions

View File

@ -274,6 +274,18 @@ static void server_loop(const char *socket_path, const char *pidfile_path,
exit(1);
}
/*
* Make sure the socket isn't using fd numbers 0-2 to avoid it
* getting closed by create_daemon()
*/
while (!debug && s <= 2) {
s = dup(s);
if (s < 0) {
perror("dup");
exit(1);
}
}
/*
* Create the address we will be binding to.
*/