From: Cristian Rodríguez Date: Wed, 14 Jan 2015 05:51:41 +0000 (-0300) Subject: sysv-generator: only allow regular files in enumerate_sysv() X-Git-Tag: v219~365 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0814f65ec6feba5efcf0f5b14c054f3c40e4cd8f sysv-generator: only allow regular files in enumerate_sysv() Otherwise, if the directory contains other directories we fail at fopen in load_sysv() with EISDIR. --- diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index 3279c7f44..b8b77aa03 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -752,8 +752,10 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { struct stat st; int r; - if (hidden_file(de->d_name)) - continue; + dirent_ensure_type(d, de); + + if (!dirent_is_file(de)) + continue; if (fstatat(dirfd(d), de->d_name, &st, 0) < 0) { log_warning_errno(errno, "stat() failed on %s/%s: %m", *path, de->d_name);