chiark / gitweb /
finally remove the directory event-multiplexer crap
[elogind.git] / udevd.c
diff --git a/udevd.c b/udevd.c
index 07f1c48103720d1e3d517ef982b9dac27fe5cfa6..8f3329ea635ab0f5d542f252a1d4b58e95708ad6 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -124,7 +124,7 @@ static int udev_event_process(struct udevd_uevent_msg *msg)
        for (i = 0; msg->envp[i]; i++)
                putenv(msg->envp[i]);
 
-       udev = udev_device_init();
+       udev = udev_device_init(NULL);
        if (udev == NULL)
                return -1;
        strlcpy(udev->action, msg->action, sizeof(udev->action));
@@ -174,16 +174,16 @@ static void export_event_state(struct udevd_uevent_msg *msg, enum event_state st
        /* add location of queue files */
        strlcpy(filename, udev_root, sizeof(filename));
        strlcat(filename, "/", sizeof(filename));
-       start = strlcat(filename, EVENT_QUEUE_DIR, sizeof(filename));
+       start = strlcat(filename, EVENT_QUEUE_DIR"/", sizeof(filename));
        strlcat(filename, msg->devpath, sizeof(filename));
-       path_encode(&filename[start+1], sizeof(filename) - (start+1));
+       path_encode(&filename[start], sizeof(filename) - start);
 
        /* add location of failed files */
        strlcpy(filename_failed, udev_root, sizeof(filename_failed));
        strlcat(filename_failed, "/", sizeof(filename_failed));
-       start = strlcat(filename_failed, EVENT_FAILED_DIR, sizeof(filename_failed));
+       start = strlcat(filename_failed, EVENT_FAILED_DIR"/", sizeof(filename_failed));
        strlcat(filename_failed, msg->devpath, sizeof(filename_failed));
-       path_encode(&filename_failed[start+1], sizeof(filename) - (start+1));
+       path_encode(&filename_failed[start], sizeof(filename) - start);
 
        switch (state) {
        case EVENT_QUEUED:
@@ -348,7 +348,7 @@ static int mem_size_mb(void)
 static int cpu_count(void)
 {
        int f;
-       char buf[32768];
+       char buf[65536];
        int len;
        const char *pos;
        int count = 0;
@@ -1230,6 +1230,7 @@ int main(int argc, char *argv[], char *envp[])
 exit:
        udev_rules_cleanup(&rules);
        sysfs_cleanup();
+       selinux_exit();
 
        if (signal_pipe[READ_END] >= 0)
                close(signal_pipe[READ_END]);