Commit Graph

98 Commits

Author SHA1 Message Date
christos 313c1811bf Coverity CID 1774, 1773: Don't leak open file descriptors or leave temp
file turds on error.
2006-04-25 18:02:02 +00:00
wiz 5d1e8b2745 Fix some typos. 2006-02-25 02:28:55 +00:00
heas be21025dae Set SIGCHLD to SIG_DFL in cron's child; instead of SIG_IGN, which alters the
behavior of wait() causing cron_pclose() to return bogus status and the logging
of bogus status in debug mode.
2005-08-17 22:35:20 +00:00
christos 102bb7e88c - eliminate a goto.
- cast more returns to void.
- use waitpid instead of wait() to wait for our process, not accidentally
  wait for other children.
- return exitstatus only if exited, and return the termination signal otherwise.
2005-07-31 17:52:01 +00:00
he 63104d4c13 Initialize s, name and name_end in load_env() to appease -Wuninitialized.
Marked with XXXGCC for sparc64 (found while compiling for it).

Reviewed by lukem.
2005-06-07 13:43:52 +00:00
chs 7bbdd188e1 appease gcc -Wuninitialized on hp700. 2005-06-05 19:08:28 +00:00
xtraeme 7e70b71d91 Kill __P(), use ANSI function declarations, constify; WARNS=3 2005-03-16 02:53:55 +00:00
christos cf31b04130 PR/10957: Ed Ravin: Cron does not execute the last line in crontab if
the trailing newline is missing. Fix by changing crontab(1) to not
allow installation of crontab files with missing trailing newlines.
2005-03-04 16:46:28 +00:00
christos 36e8d2b792 PR/28744: Ed Ravin: crontab with fewer than 3 comment lines dumps core
in crontab -l.
The problem is that the skip_header code has a side effect of trying to
write to the new temporary cron tab if we run out of comments. Since we
don't have an output file in -l, we core-dump trying to fputc to NULL.
Simplify the logic so that we don't write in the skip_header function,
and we always return the first character after the comment lines to the
caller, skipping the '\n'.
2004-12-22 00:49:14 +00:00
dsl 78f35b774e Add (unsigned char) cast to ctype functions
Add fpurge(stdin) before prompt - unexpected question.
for usr.bin/crontab
2004-10-30 17:14:36 +00:00
dsl cfe7f80ff0 Add (unsigned char) cast to ctype functions 2004-10-29 20:51:11 +00:00
jmmv 25298658a7 Fix indentation of a line in the sample file. 2004-09-02 11:41:27 +00:00
wiz 08abac00be New sentence, new line; use Ev for environment variable;
use "its" where correct; use standard section headers; add missing .Os.
2004-03-20 18:54:33 +00:00
jdolecek ac4f86b471 log also the time when the job finishes (with CMD FINISH tag), and change
the tag for job start log to ``CMD START''

adresses PR bin/22201 by John Hawkinson
2004-03-20 10:42:00 +00:00
jdolecek 098027866f when encoding the command for printing in logs, use strvisx() instead
of homegrown code, and skip leading white space
2004-03-20 10:38:34 +00:00
jdolecek 580f716bfc document -x - adresses PR bin/22201 by John Hawkinson
reference rc.d framework instead of rc/rc.local
sprinkle couple more .Pa's
2004-03-20 10:04:13 +00:00
jdolecek 251e6a062a convert to mandoc, bump date 2004-03-20 09:18:03 +00:00
enami 0790d0f46f Set DO[WM]_STAR if we mean `*' so that @yearly/@monthly/@weekly are
interpreted as documented/expected rather than "0 0 1 1 0-7" /
"0 0 1 * 0-7" / "0 0 1-31 * 0" respectively.  Fixes PR#24547.
2004-02-27 23:22:09 +00:00
jdolecek c98a00090a minor constification 2004-02-07 12:31:15 +00:00
jdolecek 0d3df21f35 use system() to spawn editor, so that it's possible to use EDITOR
setting which includes options; this reinstates functionality lost in rev 1.18
2004-01-04 09:09:56 +00:00
is 0534dcc9c5 Report read errors, too. 2003-12-07 16:50:43 +00:00
is 2ee5b37e8f rewind() does an implicit clearerr(), as demanded by e.g. 1003.1. Thus,
we have to check for writing errors before rewind()ing.
2003-12-03 13:12:53 +00:00
atatat 4e34961a55 Jobs specified for @reboot are only popped into the job queue at cron
startup time ("reboot" of cron, not the system), so okay_to_go() must
always say they are good to go.  Otherwise they never will.  All other
meta-timetags pertain to regular times, so they are (or were)
unaffected.

Problem noted by tron and successfully assigned to me by perry.
2003-08-13 03:51:15 +00:00
agc 326b2259b7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22366, verified by myself.
2003-08-07 11:25:11 +00:00
hubertf e7469f38ad In "crontab -l", suppress the header lines, just as "crontab -e" does.
OK'd by Christos Zoulas and Paul Vixie.
Fixes PR 21705.
2003-06-23 22:36:02 +00:00
christos c7e6b87cad PR/3713: Aaron Brown: crontab fails with signals.
While I am here eliminate forking a shell for the editor.
2003-04-20 01:24:05 +00:00
jdolecek d70973544d use setproctitle() instead of uppercasing ProgramName
this makes the ps display nicer, and also avoids uppercasing the cron program
name in logs
idea from FreeBSD
2003-04-10 14:14:15 +00:00
perry eca50de83f set close on exec on a couple of FDs. from Charles Blundell PR security/16663 2003-04-04 01:24:09 +00:00
christos c2b5bf99ef PR/15142: Kevin P. Neal: cron does not pay attention to login_cap(3)
I simplified the patch addressed certain security concerns. I only
allowed setusercontext() to set resource limits/priority and umask,
because these are the values that are relevant from login.conf. The
rest of the settings (uid/gid/initgroups) should be done using e->uid
and e->gid like they were before, not from:

	struct passwd *pwd = getpwnam(getenv("LOGNAME"));

Finally login_cap's (path/env) are irrelevant in this context since
we want to use our e->envp anyway to execute the command.
2003-03-14 21:56:07 +00:00
dsl c17244d768 Create session before setting logname - we don't want to change the
parents logname (or any other children pre-empted in that window).
2003-02-19 09:21:15 +00:00
itojun 9593086444 use strlcpy 2002-11-16 04:34:13 +00:00
itojun dd84b30b3c license clarification, from openbsd 2002-10-02 06:47:48 +00:00
itojun 4fd217fda9 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.

from openbsd
2002-08-03 02:03:00 +00:00
wiz fed48e80ae Unifdef __STDC__. 2002-07-14 09:59:23 +00:00
atatat 29bf0c2821 Implement CRON_TZ and CRON_WITHIN to provide finer control over job
execution.  CRON_TZ sets the time zone within which a job is
considered for execution (but not in which it runs), and CRON_WITHIN
allows jobs to be skipped whose execution is delayed for any reason
(eg, the system was sleeping or the load average is too high for
timely execution).
2002-04-25 14:45:05 +00:00
jdolecek d437ea659d child_process(): if the input_data didn't contain any '%', the pointer
ended up _after_ the final '\0', so the code past though there are some
data to be passed to the spawned command, causing child process
crash under some circumstances; adjust input_data in this case to avoid this

XXX this is already fixed in cron 4.0-b1 (though slighly differently)
2002-03-23 09:38:02 +00:00
ross 2a76afae02 Generate <>& symbolically. I'm avoiding .../dist/... directories for now. 2002-02-08 01:36:18 +00:00
wiz 5db87f557b Whitespace nits. 2002-01-19 03:09:21 +00:00
wiz 578af6b124 Fix xref. 2002-01-19 03:09:06 +00:00
wiz 3abdd84a78 Whitespace nits, and standardize an xref. 2002-01-19 03:08:50 +00:00
yamt cb1ee3b752 make consistent escape sequence handling
between commandline and command input.

pointed by Christoph Badura <bad@netbsd.org>
2001-08-13 06:54:58 +00:00
yamt 69ecbbeb80 Fix a bug that prevented %'s and \'s from being passed to the program
invoked.
from FreeBSD.
2001-08-03 04:10:51 +00:00
wiz 6b37581cf5 Restore default handler for SIG_CHLD before starting grand-children.
Idea by Christos Zoulas. Fixes bin/11778.
2001-03-13 17:51:50 +00:00
sommerfeld 057fcccd0c Default crontab size limit is 256k, not 32k; correct documentation to
match code.
2000-11-28 14:06:13 +00:00
enami f1fec63273 When @hourly is specified, set not just 23 but bit 0 through 22 also in
the bitstring e->hour.  Fixes PR#10961.
2000-09-13 04:07:34 +00:00
christos 250a1a772c PR/7662: TheMan: crontab does not think the file changed if the editing session
took < 1sec.
1999-05-29 18:43:40 +00:00
cjs d49fc436a6 Reduce default crontab size limit to 32K. Use the limit in
/var/cron/maxtabsize, if that file exists.
1999-04-09 02:47:03 +00:00
cjs a1d7b99e1e Make sure that the crontab is not an unreasonable size.
(Currently MAXCRONTABSIZE is 256 KB.)
1999-04-08 21:30:02 +00:00
thorpej bc5e782935 Don't rely on an `rcsid' being present. 1999-03-23 22:53:30 +00:00
aidan 3d3560d6aa Apply soda's patch to make environment sets act like the man-page
documentation.  i.e., strip the spaces around the '=' sign.
1999-03-22 22:18:45 +00:00