/* needed for standalone udev operations */
static void static_dev_create_links(struct udev *udev)
{
- DIR *dir;
struct stdlinks {
const char *link;
const char *target;
};
static const struct stdlinks stdlinks[] = {
- { "core", "/proc/kcore" },
- { "fd", "/proc/self/fd" },
- { "stdin", "/proc/self/fd/0" },
- { "stdout", "/proc/self/fd/1" },
- { "stderr", "/proc/self/fd/2" },
+ { "/dev/core", "/proc/kcore" },
+ { "/dev/fd", "/proc/self/fd" },
+ { "/dev/stdin", "/proc/self/fd/0" },
+ { "/dev/stdout", "/proc/self/fd/1" },
+ { "/dev/stderr", "/proc/self/fd/2" },
};
unsigned int i;
- dir = opendir("/dev");
- if (dir == NULL)
- return;
-
for (i = 0; i < ELEMENTSOF(stdlinks); i++) {
struct stat sb;
if (stat(stdlinks[i].target, &sb) == 0) {
- udev_selinux_setfscreateconat(udev, dirfd(dir), stdlinks[i].link, S_IFLNK);
- if (symlinkat(stdlinks[i].target, dirfd(dir), stdlinks[i].link) < 0 && errno == EEXIST)
- utimensat(dirfd(dir), stdlinks[i].link, NULL, AT_SYMLINK_NOFOLLOW);
+ udev_selinux_setfscreatecon(udev, stdlinks[i].link, S_IFLNK);
+ if (symlink(stdlinks[i].target, stdlinks[i].link) < 0 && errno == EEXIST)
+ utimensat(AT_FDCWD, stdlinks[i].link, NULL, AT_SYMLINK_NOFOLLOW);
udev_selinux_resetfscreatecon(udev);
}
}
-
- closedir(dir);
}
static int mem_size_mb(void)