chiark / gitweb /
udev: do not selinux label files in /run/udev
[elogind.git] / src / udev / udev-builtin-firmware.c
index 146a57706f3639b33c196b6491e66f36c064f002..56dc8fcaa93b3d9dec17b7020434549cbf284e4e 100644 (file)
@@ -99,7 +99,7 @@ static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], boo
 
         /* lookup firmware file */
         uname(&kernel);
-        for (i = 0; i < ARRAY_SIZE(searchpath); i++) {
+        for (i = 0; i < ELEMENTSOF(searchpath); i++) {
                 util_strscpyl(fwpath, sizeof(fwpath), searchpath[i], kernel.release, "/", firmware, NULL);
                 fwfile = fopen(fwpath, "re");
                 if (fwfile != NULL)
@@ -112,7 +112,7 @@ static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], boo
         }
 
         util_path_encode(firmware, fwencpath, sizeof(fwencpath));
-        util_strscpyl(misspath, sizeof(misspath), udev_get_run_path(udev), "/firmware-missing/", fwencpath, NULL);
+        util_strscpyl(misspath, sizeof(misspath), "/run/udev/firmware-missing/", fwencpath, NULL);
         util_strscpyl(loadpath, sizeof(loadpath), udev_device_get_syspath(dev), "/loading", NULL);
 
         if (fwfile == NULL) {
@@ -121,7 +121,7 @@ static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], boo
                 /* This link indicates the missing firmware file and the associated device */
                 log_debug("did not find firmware file '%s'\n", firmware);
                 do {
-                        err = util_create_path(udev, misspath);
+                        err = mkdir_parents(misspath, 0755);
                         if (err != 0 && err != -ENOENT)
                                 break;
                         err = symlink(udev_device_get_devpath(dev), misspath);