summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2017-06-22 07:10:01 +0000
committerngie <ngie@FreeBSD.org>2017-06-22 07:10:01 +0000
commit53e97f0e05bb72940cc2256693e2cd5f4272a93c (patch)
treebb62f2054d80af214123ac337f205ce55c0e9e2a
parentf82f9e3f5ffaa7fafc65ff8c3e0068d49d53cc27 (diff)
downloadFreeBSD-src-53e97f0e05bb72940cc2256693e2cd5f4272a93c.zip
FreeBSD-src-53e97f0e05bb72940cc2256693e2cd5f4272a93c.tar.gz
MFC r308158:
r308158 (by bapt): Allow symlinks to be followed in cron.d directories and fix detection of regular files on NFS
-rw-r--r--usr.sbin/cron/cron/database.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/cron/cron/database.c b/usr.sbin/cron/cron/database.c
index 2ac7113..2b0c67b 100644
--- a/usr.sbin/cron/cron/database.c
+++ b/usr.sbin/cron/cron/database.c
@@ -44,7 +44,7 @@ load_database(old_db)
{
DIR *dir;
struct stat statbuf;
- struct stat syscron_stat;
+ struct stat syscron_stat, st;
time_t maxmtime;
DIR_T *dp;
cron_db new_db;
@@ -124,7 +124,8 @@ load_database(old_db)
while (NULL != (dp = readdir(dir))) {
if (dp->d_name[0] == '.')
continue;
- if (dp->d_type != DT_REG)
+ if (fstatat(dirfd(dir), dp->d_name, &st, 0) == 0 &&
+ !S_ISREG(st.st_mode))
continue;
snprintf(tabname, sizeof(tabname), "%s/%s",
syscrontabs[i].name, dp->d_name);
OpenPOWER on IntegriCloud