From: Martin Wilck Date: Fri, 21 Jan 2022 09:44:26 +0000 (+0100) Subject: udevadm: cleanup_dir: use dot_or_dot_dot() X-Git-Tag: v251-rc1~483^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=28d6e8545151d413f8614db9fa790f9f9edbb045;p=thirdparty%2Fsystemd.git udevadm: cleanup_dir: use dot_or_dot_dot() which is safer than just checking dent[0]. Also, fix two style issues. --- diff --git a/src/udev/udevadm-info.c b/src/udev/udevadm-info.c index 740434bb419..cb5e74a1b61 100644 --- a/src/udev/udevadm-info.c +++ b/src/udev/udevadm-info.c @@ -232,12 +232,14 @@ static void cleanup_dir(DIR *dir, mode_t mask, int depth) { if (depth <= 0) return; + assert(dir); + FOREACH_DIRENT_ALL(dent, dir, break) { struct stat stats; - if (dent->d_name[0] == '.') + if (dot_or_dot_dot(dent->d_name)) continue; - if (fstatat(dirfd(dir), dent->d_name, &stats, AT_SYMLINK_NOFOLLOW) != 0) + if (fstatat(dirfd(dir), dent->d_name, &stats, AT_SYMLINK_NOFOLLOW) < 0) continue; if ((stats.st_mode & mask) != 0) continue;