#include "udev.h"
#include "udev_rules.h"
-#include "udev_selinux.h"
static void asmlinkage sig_handler(int signum)
{
const char *devpath;
const char *subsystem;
struct sigaction act;
- int devnull;
int retval = -EINVAL;
udev = udev_new();
if (udev == NULL)
exit(1);
dbg(udev, "version %s\n", VERSION);
- selinux_init(udev);
-
- /* set std fd's to /dev/null, /sbin/hotplug forks us, we don't have them at all */
- devnull = open("/dev/null", O_RDWR);
- if (devnull >= 0) {
- if (devnull != STDIN_FILENO)
- dup2(devnull, STDIN_FILENO);
- if (devnull != STDOUT_FILENO)
- dup2(devnull, STDOUT_FILENO);
- if (devnull != STDERR_FILENO)
- dup2(devnull, STDERR_FILENO);
- if (devnull > STDERR_FILENO)
- close(devnull);
- } else {
- err(udev, "open /dev/null failed: %s\n", strerror(errno));
- }
/* set signal handlers */
memset(&act, 0x00, sizeof(act));
fail:
udev_rules_cleanup(&rules);
sysfs_cleanup();
- selinux_exit(udev);
-
exit:
+ udev_unref(udev);
if (retval != 0)
return 1;
return 0;