1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

dmeventd: use standard reopening mechanism

Apply same code for reopening /dev/null for 0,1,2 when daemonizing.
This commit is contained in:
Zdenek Kabelac 2024-04-26 23:53:29 +02:00
parent d194fb8513
commit 7c4be946cb

View File

@ -1943,7 +1943,7 @@ static void _remove_files_on_exit(void)
static void _daemonize(void)
{
int child_status;
int child_status, null_fd;
pid_t pid;
struct timeval tval;
sigset_t my_sigset;
@ -1998,13 +1998,20 @@ static void _daemonize(void)
daemon_close_stray_fds("dmeventd", 0, -1, &custom_fds);
/* coverity[leaked_handle] dont't care */
if ((open("/dev/null", O_RDONLY) < 0) ||
(open("/dev/null", O_WRONLY) < 0) ||
(open("/dev/null", O_WRONLY) < 0))
if ((null_fd = open("/dev/null", O_RDWR)) < 0)
exit(EXIT_DESC_OPEN_FAILURE);
if ((dup2(null_fd, STDIN_FILENO) == -1) ||
(dup2(null_fd, STDOUT_FILENO) == -1) ||
(dup2(null_fd, STDERR_FILENO) == -1))
exit(EXIT_DESC_OPEN_FAILURE);
if ((null_fd > STDERR_FILENO) && close(null_fd))
exit(EXIT_DESC_CLOSE_FAILURE);
setsid();
/* coverity[leaked_handle] 'null_fd' handle is not leaking */
}
static int _reinstate_registrations(struct dm_event_fifos *fifos)