chiark / gitweb /
[PATCH] Allow GROUP to have modifiers in it
[elogind.git] / dev_d.c
diff --git a/dev_d.c b/dev_d.c
index b3d05d9220d7f5fb1f6c18dd1a8bcbea8ede6f0b..817355af60397c4c4f221a793c860d0b0f859ecd 100644 (file)
--- a/dev_d.c
+++ b/dev_d.c
@@ -29,7 +29,6 @@
 
 #include "udev.h"
 #include "udev_lib.h"
-#include "udevdb.h"
 #include "logging.h"
 
 static int run_program(const char *filename, void *data)
@@ -97,13 +96,17 @@ void dev_d_execute(struct udevice *udev, const char *basedir, const char *suffix
                temp = strchr(temp, '/');
        }
 
-       snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->name);
-       dirname[PATH_MAX-1] = '\0';
-       call_foreach_file(run_program, dirname, suffix, udev);
+       if (udev->name[0] != '\0') {
+               snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->name);
+               dirname[PATH_MAX-1] = '\0';
+               call_foreach_file(run_program, dirname, suffix, udev);
+       }
 
-       snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->subsystem);
-       dirname[PATH_MAX-1] = '\0';
-       call_foreach_file(run_program, dirname, suffix, udev);
+       if (udev->subsystem[0] != '\0') {
+               snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->subsystem);
+               dirname[PATH_MAX-1] = '\0';
+               call_foreach_file(run_program, dirname, suffix, udev);
+       }
 
        snprintf(dirname, PATH_MAX, "%s/default", basedir);
        dirname[PATH_MAX-1] = '\0';