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));
/* 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:
static int cpu_count(void)
{
int f;
- char buf[32768];
+ char buf[65536];
int len;
const char *pos;
int count = 0;
exit:
udev_rules_cleanup(&rules);
sysfs_cleanup();
+ selinux_exit();
if (signal_pipe[READ_END] >= 0)
close(signal_pipe[READ_END]);