#include <fcntl.h>
#include "klibc_fixups.h"
#include <sys/sysinfo.h>
+#include <sys/stat.h>
#include "list.h"
#include "udev.h"
/* child */
execle(udev_bin, "udev", msg->subsystem, NULL, env);
dbg("exec of child failed");
- exit(1);
+ _exit(1);
break;
case -1:
dbg("fork of child failed");
return;
}
-asmlinkage static void sig_handler(int signum)
+static void asmlinkage sig_handler(int signum)
{
int rc;
struct sigaction act;
fd_set readfds;
- init_logging("udevd");
+ logging_init("udevd");
dbg("version %s", UDEV_VERSION);
if (getuid() != 0) {
/* set signal handlers */
- act.sa_handler = sig_handler;
+ act.sa_handler = (void (*) (int))sig_handler;
sigemptyset(&act.sa_mask);
act.sa_flags = SA_RESTART;
sigaction(SIGINT, &act, NULL);
exit(1);
}
+ set_cloexec_flag(ssock, 1);
+
/* the bind takes care of ensuring only one copy running */
retval = bind(ssock, (struct sockaddr *) &saddr, addrlen);
if (retval < 0) {
}
exit:
close(ssock);
+ logging_close();
exit(1);
}