Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Oct 2016 23:40:04 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r308158 - head/usr.sbin/cron/cron
Message-ID:  <201610312340.u9VNe4r3039446@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Mon Oct 31 23:40:04 2016
New Revision: 308158
URL: https://svnweb.freebsd.org/changeset/base/308158

Log:
  Allow symlinks to be followed in cron.d directories and fix detection of
  regular files on NFS
  
  Reported by:	jilles

Modified:
  head/usr.sbin/cron/cron/database.c

Modified: head/usr.sbin/cron/cron/database.c
==============================================================================
--- head/usr.sbin/cron/cron/database.c	Mon Oct 31 23:32:38 2016	(r308157)
+++ head/usr.sbin/cron/cron/database.c	Mon Oct 31 23:40:04 2016	(r308158)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201610312340.u9VNe4r3039446>