/*
- * udevd.c - hotplug event serializer
+ * udevd.c - event listener and serializer
*
* Copyright (C) 2004-2005 Kay Sievers <kay.sievers@vrfy.org>
* Copyright (C) 2004 Chris Friesen <chris_friesen@sympatico.ca>
static int uevent_netlink_sock;
static pid_t sid;
-static int pipefds[2];
+static int pipefds[2] = {-1, -1};
static volatile int sigchilds_waiting;
static volatile int run_msg_q;
static volatile int sig_flag;
{
int maxsockplus;
int retval;
- int fd;
+ int devnull;
struct sigaction act;
fd_set readfds;
const char *value;
setpriority(PRIO_PROCESS, 0, UDEVD_PRIORITY);
/* Set fds to dev/null */
- fd = open( "/dev/null", O_RDWR );
- if (fd >= 0) {
- dup2(fd, 0);
- dup2(fd, 1);
- dup2(fd, 2);
- if (fd > 2)
- close(fd);
+ devnull = open( "/dev/null", O_RDWR );
+ if (devnull > 0) {
+ dup2(devnull, STDIN_FILENO);
+ dup2(devnull, STDOUT_FILENO);
+ dup2(devnull, STDERR_FILENO);
+ close(devnull);
} else
err("error opening /dev/null %s", strerror(errno));
}
exit:
+ if (pipefds[0] > 0)
+ close(pipefds[0]);
+ if (pipefds[1] > 0)
+ close(pipefds[1]);
+
if (udevd_sock > 0)
close(udevd_sock);