chiark / gitweb /
[PATCH] delete udev_selinux as it doesn't work properly and is the wrong way to do...
[elogind.git] / udevstart.c
index 40dbaf2475bcadc9006aabbad0f973bc33bfd250..1d9b60464c32749c2a72050996dfd9a29500a7b3 100644 (file)
 #include <ctype.h>
 #include <dirent.h>
 #include <sys/wait.h>
+#include <sys/types.h>
+#include <unistd.h>
 
 #include "logging.h"
+#include "udev_lib.h"
 
 
 #ifdef LOG
@@ -59,8 +62,8 @@ static void udev_exec(const char *path, const char* subsystem)
        char nosleep[] = "UDEV_NO_SLEEP=1";
        char *env[] = { action, devpath, nosleep, NULL };
 
-       snprintf(devpath, MAX_PATHLEN, "DEVPATH=%s", path);
-       devpath[MAX_PATHLEN-1] = '\0';
+       strcpy(devpath, "DEVPATH=");
+       strfieldcat(devpath, path);
 
        pid = fork();
        switch (pid) {
@@ -127,10 +130,13 @@ static void udev_scan(void)
                                                                udev_exec(filename, "block");
                                                        }
                                                }
+                                               closedir(dir3);
                                        }
                                }
+                               closedir(dir2);
                        }
                }
+               closedir(dir);
        }
 
        devpath = "class";
@@ -173,10 +179,13 @@ static void udev_scan(void)
                                                                udev_exec(filename, dent->d_name);
                                                        }
                                                }
+                                               closedir(dir3);
                                        }
                                }
+                               closedir(dir2);
                        }
                }
+               closedir(dir);
        }
 }