#include <dirent.h>
#include <errno.h>
#include <getopt.h>
+#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
if (dir != NULL) {
for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
struct stat statbuf;
- char filename[UTIL_PATH_SIZE];
const char *value;
size_t len;
if (strcmp(dent->d_name, "dev") == 0)
continue;
- util_strscpyl(filename, sizeof(filename), udev_device_get_syspath(device), "/", dent->d_name, NULL);
- if (lstat(filename, &statbuf) != 0)
+ if (fstatat(dirfd(dir), dent->d_name, &statbuf, AT_SYMLINK_NOFOLLOW) != 0)
continue;
if (S_ISLNK(statbuf.st_mode))
continue;