chiark / gitweb /
libudev: get rid of selinux
[elogind.git] / udev / udevd.c
index 1f8483c301dde3c91e7e775ffede2332c903ca6d..4000d37e80f596b8a9d5499965b0d3ed73c3b225 100644 (file)
@@ -784,11 +784,11 @@ int main(int argc, char *argv[])
        const char *value;
        int daemonize = 0;
        static const struct option options[] = {
-               { "daemon", 0, NULL, 'd' },
-               { "debug-trace", 0, NULL, 't' },
-               { "debug", 0, NULL, 'D' },
-               { "help", 0, NULL, 'h' },
-               { "version", 0, NULL, 'V' },
+               { "daemon", no_argument, NULL, 'd' },
+               { "debug-trace", no_argument, NULL, 't' },
+               { "debug", no_argument, NULL, 'D' },
+               { "help", no_argument, NULL, 'h' },
+               { "version", no_argument, NULL, 'V' },
                {}
        };
        int rc = 1;
@@ -801,6 +801,7 @@ int main(int argc, char *argv[])
        logging_init("udevd");
        udev_set_log_fn(udev, log_fn);
        dbg(udev, "version %s\n", VERSION);
+       selinux_init(udev);
 
        while (1) {
                int option;
@@ -953,9 +954,21 @@ int main(int argc, char *argv[])
 
        fd = open("/dev/kmsg", O_WRONLY);
        if (fd > 0) {
-               const char *str = "<6>udevd version " VERSION " started\n";
-
-               write(fd, str, strlen(str));
+               const char *ver_str = "<6>udev: starting version " VERSION "\n";
+               char path[UTIL_PATH_SIZE];
+               struct stat statbuf;
+
+               write(fd, ver_str, strlen(ver_str));
+               util_strlcpy(path, udev_get_sys_path(udev), sizeof(path));
+               util_strlcat(path, "/class/mem/null", sizeof(path));
+               if (lstat(path, &statbuf) == 0) {
+                       if (S_ISDIR(statbuf.st_mode)) {
+                               const char *depr_str = "<6>udev: deprecated sysfs layout "
+                                                      "(CONFIG_SYSFS_DEPRECATED) is unsupported\n";
+
+                               write(fd, depr_str, strlen(depr_str));
+                       }
+               }
                close(fd);
        }
 
@@ -1113,6 +1126,8 @@ exit:
        if (uevent_netlink_sock >= 0)
                close(uevent_netlink_sock);
 
+       selinux_exit(udev);
+       udev_unref(udev);
        logging_close();
        return rc;
 }