OpenBSD CVS

CVS log for src/usr.sbin/cron/database.c


[BACK] Up to [local] / src / usr.sbin / cron

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.38 / (download) - annotate - [select for diffs], Fri Jun 28 13:32:47 2019 UTC (4 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, HEAD
Changes since 1.37: +5 -5 lines
Diff to previous 1.37 (colored)

When system calls indicate an error they return -1, not some arbitrary
value < 0.  errno is only updated in this case.  Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.

Revision 1.37 / (download) - annotate - [select for diffs], Mon Feb 5 03:52:37 2018 UTC (6 years, 4 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.36: +14 -9 lines
Diff to previous 1.36 (colored)

Pass a FILE * instead of a file descriptor into load_user() and
perform the fclose() in process_crontab().  Previously we were
closing the crontab fd twice--once in load_user() via fclose() and
once in process_crontab().  OK tb@

Revision 1.36 / (download) - annotate - [select for diffs], Wed Oct 25 17:08:58 2017 UTC (6 years, 7 months ago) by jca
Branch: MAIN
Changes since 1.35: +3 -2 lines
Diff to previous 1.35 (colored)

Open a bunch of fds with O_CLOEXEC

Not needed in theory, but could prevent accidental leaks.  ok millert@

Revision 1.35 / (download) - annotate - [select for diffs], Wed Jun 7 23:36:43 2017 UTC (7 years ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.34: +27 -22 lines
Diff to previous 1.34 (colored)

In cron(8), require that crontab and at files in the spool be owned
by group crontab.  The at(1) command now creates files owned by
group crontab, the crontab(1) command already does this.

Files in the crontab spool with parse errors are now ignored;
crontab(1) will not install a crontab file with parse errors.
The system crontab file (/etc/crontab) is not affected by this.

The required permissions on crontab files have been tightened.
Files in the cron spool must be mode 0600 (as created by crontab(1)).
The system crontab file may be readable/writable by the owner,
readable by group and readable by other.  The system crontab must
be readable by the owner.

Revision 1.34 / (download) - annotate - [select for diffs], Mon Jan 11 14:23:50 2016 UTC (8 years, 4 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.33: +16 -9 lines
Diff to previous 1.33 (colored)

When caching the mtime of the spool directory and system crontab files,
stash a struct timespec, not just a time_t.  Fixes a bug where cron
could skip re-reading the spool after two consecutive changes.

Revision 1.33 / (download) - annotate - [select for diffs], Sat Nov 14 13:09:14 2015 UTC (8 years, 6 months ago) by millert
Branch: MAIN
Changes since 1.32: +13 -11 lines
Diff to previous 1.32 (colored)

Remove log_it() and call syslog(3) directly using the same format:
"(username) WHAT (details)".  Logs due to normal operation (e.g.
crontab operations or running commands) are logged at LOG_INFO like
before.  Actual errors are logged at LOG_ERR, less important things
are logged at LOG_WARNING OR LOG_NOTICE.  Also ignore SIGHUP now
that there is no log file to reopen.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Nov 12 21:12:05 2015 UTC (8 years, 6 months ago) by millert
Branch: MAIN
Changes since 1.31: +27 -39 lines
Diff to previous 1.31 (colored)

Use absolute paths in pathnames.h.  There is no longer a need to
chdir(2) to the cron dir and cron(8) now changes to / via daemon(3).
We no longer try to create/chmod the spool directories as they
should be set correctly at install time.  The setegid(crontab)
has been moved to open_socket() so it is closer to the chmod(2)
call that needs it.  OK deraadt@ tedu@

Revision 1.31 / (download) - annotate - [select for diffs], Mon Nov 9 16:37:07 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.30: +11 -11 lines
Diff to previous 1.30 (colored)

Remove unused xpid argument to log_it().

Revision 1.30 / (download) - annotate - [select for diffs], Mon Nov 9 15:57:39 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.29: +7 -7 lines
Diff to previous 1.29 (colored)

Rename AT_DIR -> AT_SPOOL and SPOOL_DIR -> CRON_SPOOL to improve
readability.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Nov 9 01:12:27 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.28: +41 -52 lines
Diff to previous 1.28 (colored)

queue(3) instead of homegrown queues and lists.  This also fixes
some potential memory leaks in error paths.  OK guenther@

Revision 1.28 / (download) - annotate - [select for diffs], Wed Nov 4 20:28:17 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.27: +19 -2 lines
Diff to previous 1.27 (colored)

Change cron from including all headers in every file to only including
what each .c file needs.  I have not removed cron.h since it will
be used in a future clean up of the cron's .h files.  OK nicm@

Revision 1.27 / (download) - annotate - [select for diffs], Mon Oct 26 14:27:41 2015 UTC (8 years, 7 months ago) by millert
Branch: MAIN
Changes since 1.26: +3 -3 lines
Diff to previous 1.26 (colored)

Remove some useless defines and the set_cron_uid() function.
OK jung@

Revision 1.26 / (download) - annotate - [select for diffs], Tue Oct 6 14:58:37 2015 UTC (8 years, 8 months ago) by tedu
Branch: MAIN
Changes since 1.25: +1 -4 lines
Diff to previous 1.25 (colored)

clear out some more legacy code and whatnot

Revision 1.25 / (download) - annotate - [select for diffs], Mon Feb 9 22:35:08 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.24: +1 -5 lines
Diff to previous 1.24 (colored)

correct copyright, upon approval from paul vixie via todd miller.  the
head copyright assertion was seperated from the remaining ones.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Jan 23 19:07:27 2015 UTC (9 years, 4 months ago) by tedu
Branch: MAIN
Changes since 1.23: +9 -5 lines
Diff to previous 1.23 (colored)

braces to open a function go on their own line like god intended

Revision 1.23 / (download) - annotate - [select for diffs], Fri Jan 23 02:37:25 2015 UTC (9 years, 4 months ago) by tedu
Branch: MAIN
Changes since 1.22: +7 -7 lines
Diff to previous 1.22 (colored)

Remove the OK and ERR macros. They obfuscate the code and don't
help legibility. (unix system calls use 0 for ok, but hundreds of
other projects use 1 to indicate success.) Despite the name, many
system calls (e.g., open) also return not OK values for success.
It also cleans up some weird code like int crontab_fd = OK - 1;
This diff is mechanical in nature. Later I will fix the bugs it reveals.
ok deraadt

Revision 1.22 / (download) - annotate - [select for diffs], Fri Jan 23 01:01:06 2015 UTC (9 years, 4 months ago) by tedu
Branch: MAIN
Changes since 1.21: +1 -12 lines
Diff to previous 1.21 (colored)

remove debug code.
I think the level of debug code in cron is excessive for a program
that has reached feature complete. If cron needs to provide more
information to the user about its operational status, I think syslog
would be more appropriate. (The debug flags also disable forking
into the background, so they aren't even that useful for debugging a
live system.)
ok deraadt millert

Revision 1.21 / (download) - annotate - [select for diffs], Wed Jan 14 17:30:53 2015 UTC (9 years, 4 months ago) by millert
Branch: MAIN
Changes since 1.20: +2 -2 lines
Diff to previous 1.20 (colored)

Replace MAXHOSTNAMELEN with HOST_NAME_MAX+1 and MAXNAMLEN with NAME_MAX
and use limits.h instead of sys/param.h.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jan 14 17:27:29 2015 UTC (9 years, 4 months ago) by millert
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

Use standard types for wait, readdir, signals and pids.

Revision 1.19 / (download) - annotate - [select for diffs], Tue Dec 14 23:31:33 2010 UTC (13 years, 5 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

Treat a missing spool dir like an empty one.  OK deraadt@

Revision 1.18 / (download) - annotate - [select for diffs], Tue Oct 27 23:59:51 2009 UTC (14 years, 7 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.17: +1 -5 lines
Diff to previous 1.17 (colored)

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable).  these days, people use source.  these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms

Revision 1.17 / (download) - annotate - [select for diffs], Wed Mar 28 16:49:25 2007 UTC (17 years, 2 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.16: +8 -5 lines
Diff to previous 1.16 (colored)

Since /etc/crontab is not edited via crontab(1) there's no good
reason to require its mode to be be 0400 or to bail if the link
count is != 1.  The reason for such paranoia all has to do with
crontab(1) and editing user crontab files.  We now only require
that /etc/crontab not be writable by anyone other than the owner.
OK deraadt@ ajacoutot@ jmc@

Revision 1.16 / (download) - annotate - [select for diffs], Tue Jun 22 03:15:33 2004 UTC (19 years, 11 months ago) by avsm
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.15: +4 -4 lines
Diff to previous 1.15 (colored)

use snprintf(3) instead of home-grown glue_strings() function
millert@ ok

Revision 1.15 / (download) - annotate - [select for diffs], Thu Jun 17 22:11:55 2004 UTC (19 years, 11 months ago) by millert
Branch: MAIN
Changes since 1.14: +11 -11 lines
Diff to previous 1.14 (colored)

UUpdate ISC copyright year to 2004
Remove unused macros Skip_Line and MkLower
Remove trailing whitespace

Revision 1.14 / (download) - annotate - [select for diffs], Thu Jun 3 18:41:58 2004 UTC (20 years ago) by millert
Branch: MAIN
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

Though crontab files are created mode 0600 we should accept ones that
are mode 0400 too.  From Walt Howard.

Revision 1.13 / (download) - annotate - [select for diffs], Sat Mar 15 00:39:01 2003 UTC (21 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4, OPENBSD_3_3_BASE, OPENBSD_3_3
Changes since 1.12: +3 -4 lines
Diff to previous 1.12 (colored)

Use strlcpy() instead of pre-checking the src len and using strcpy()

Revision 1.12 / (download) - annotate - [select for diffs], Thu Feb 20 20:38:08 2003 UTC (21 years, 3 months ago) by millert
Branch: MAIN
Changes since 1.11: +4 -3 lines
Diff to previous 1.11 (colored)

Sync with ISC cron-current + my at(1) integration.
The at(1) code is now more tightly integrated into the cron codebase.

Revision 1.11 / (download) - annotate - [select for diffs], Sat Aug 10 20:28:51 2002 UTC (21 years, 10 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.10: +2 -3 lines
Diff to previous 1.10 (colored)

Just zero out pw_passwd in the pw_dup()'d copy.  There's no need
to do this elsewhere and my previous commit in this area caused
problems on systems with an /etc/crontab file.

Revision 1.10 / (download) - annotate - [select for diffs], Wed Aug 7 23:22:41 2002 UTC (21 years, 10 months ago) by millert
Branch: MAIN
Changes since 1.9: +3 -2 lines
Diff to previous 1.9 (colored)

paranoia: zero out pw_passwd since we don't need it

Revision 1.9 / (download) - annotate - [select for diffs], Sun Aug 4 22:10:24 2002 UTC (21 years, 10 months ago) by millert
Branch: MAIN
Changes since 1.8: +6 -5 lines
Diff to previous 1.8 (colored)

Extra paranoia -- check that pw_name matches the crontab user's name.
Should not really be needed since we do uid checks but it can't hurt.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Aug 2 22:40:48 2002 UTC (21 years, 10 months ago) by millert
Branch: MAIN
Changes since 1.7: +9 -6 lines
Diff to previous 1.7 (colored)

o Instead of passing "*system*" as the fname to process_crontab()
  for the system crontab file, pass a NULL pointer instead.  This
  prevents someone from creating a "*system*" file in the tabs directory
  that acts as an alternate root crontab.

o Fix the check for tab file ownership.  This really only affected
  the system crontab file, which must not be owned by root.

deraadt@ OK

Revision 1.7 / (download) - annotate - [select for diffs], Mon Jul 8 18:11:02 2002 UTC (21 years, 11 months ago) by millert
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored)

Merge in some changes from Paul Vixie's tree; most are cosmetic
o ANSI function headers
o return (foo) not return foo
o add -oi to sendmail flags
o update email address in man pages
o make some strings const
o completely remove globbing cruft from popen.c
o whitespace changes
o add DOW_STAR to flags for "monthly", "weekly", and "daily" cron entries

Revision 1.6 / (download) - annotate - [select for diffs], Thu May 9 21:22:01 2002 UTC (22 years, 1 month ago) by millert
Branch: MAIN
Changes since 1.5: +19 -3 lines
Diff to previous 1.5 (colored)

crontab is no longer setuid root, it is now setgid crontab.
These changes were modelled after the Owl version of vixie-cron,
but developed independently.

Our crontab used to send cron SIGUSR1 to tell cron to reread the
spool dir.  Now that crontab is not setuid root this doesn't work.
Instead, crontab pokes cron via a Unix domain socket located in the
tabs dir.

Please note, after these changes, the owner on user crontab files
will have to be changed manually from root to the uid of the
corresponding user for crontab to be usable.  cron itself will accept
tab files owned by either root or the user.
Also, any /var/cron/{allow,deny} files must be readable by group crontab.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Feb 18 19:48:33 2001 UTC (23 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1, OPENBSD_3_0_BASE, OPENBSD_3_0, OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.4: +49 -69 lines
Diff to previous 1.4 (colored)

Update to ISC cron 4.0b1 + our patches.  This is now under a BSD license.
I also fixed the signal handlers while I was at it.

Revision 1.4 / (download) - annotate - [select for diffs], Mon Aug 21 21:08:56 2000 UTC (23 years, 9 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored)

snprintf sprinkles; solar@false.com & I

Revision 1.3 / (download) - annotate - [select for diffs], Mon Dec 22 08:10:42 1997 UTC (26 years, 5 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_7_BASE, OPENBSD_2_7, OPENBSD_2_6_BASE, OPENBSD_2_6, OPENBSD_2_5_BASE, OPENBSD_2_5, OPENBSD_2_4_BASE, OPENBSD_2_4, OPENBSD_2_3_BASE, OPENBSD_2_3
Changes since 1.2: +4 -4 lines
Diff to previous 1.2 (colored)

handle timing normally except when clock jumps between 1 and 3 hours. If it
jumps, attempt as best as possible to gaurantee that jobs DO run, but only
run ONCE; patch by thompson@.tgsoft.com

Revision 1.2 / (download) - annotate - [select for diffs], Sun Sep 15 09:13:18 1996 UTC (27 years, 8 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_2_BASE, OPENBSD_2_2, OPENBSD_2_1_BASE, OPENBSD_2_1, OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.1: +2 -2 lines
Diff to previous 1.1 (colored)

enlarge buffer

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:47:30 1995 UTC (28 years, 7 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:47:30 1995 UTC (28 years, 7 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.