X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevd.c;h=8f3329ea635ab0f5d542f252a1d4b58e95708ad6;hb=1ce3e4fef08b9e5af230f9fc25972473aa23b8db;hp=07f1c48103720d1e3d517ef982b9dac27fe5cfa6;hpb=9c6ad9fbbac82e517f5e748ddbe166f96f120afe;p=elogind.git diff --git a/udevd.c b/udevd.c index 07f1c4810..8f3329ea6 100644 --- 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]);