summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/cron/atrun.c64
-rw-r--r--usr.sbin/cron/cron.c18
-rw-r--r--usr.sbin/cron/crontab.c62
-rw-r--r--usr.sbin/cron/do_command.c38
-rw-r--r--usr.sbin/cron/macros.h7
-rw-r--r--usr.sbin/cron/misc.c50
-rw-r--r--usr.sbin/cron/popen.c14
7 files changed, 124 insertions, 129 deletions
diff --git a/usr.sbin/cron/atrun.c b/usr.sbin/cron/atrun.c
index dca90304217..a5cc78dc61c 100644
--- a/usr.sbin/cron/atrun.c
+++ b/usr.sbin/cron/atrun.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: atrun.c,v 1.17 2011/03/03 15:08:14 millert Exp $ */
+/* $OpenBSD: atrun.c,v 1.18 2011/08/22 19:32:42 millert Exp $ */
/*
* Copyright (c) 2002-2003 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -286,41 +286,41 @@ run_job(atjob *job, char *atfile)
pw = getpwuid(job->uid);
if (pw == NULL) {
log_it("CRON", getpid(), "ORPHANED JOB", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#if (defined(BSD)) && (BSD >= 199103)
if (pw->pw_expire && time(NULL) >= pw->pw_expire) {
log_it(pw->pw_name, getpid(), "ACCOUNT EXPIRED, JOB ABORTED",
atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#endif
/* Sanity checks */
if (fstat(fd, &statbuf) < OK) {
log_it(pw->pw_name, getpid(), "FSTAT FAILED", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (!S_ISREG(statbuf.st_mode)) {
log_it(pw->pw_name, getpid(), "NOT REGULAR", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if ((statbuf.st_mode & ALLPERMS) != (S_IRUSR | S_IWUSR | S_IXUSR)) {
log_it(pw->pw_name, getpid(), "BAD FILE MODE", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (statbuf.st_uid != 0 && statbuf.st_uid != job->uid) {
log_it(pw->pw_name, getpid(), "WRONG FILE OWNER", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (statbuf.st_nlink > 1) {
log_it(pw->pw_name, getpid(), "BAD LINK COUNT", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if ((fp = fdopen(dup(fd), "r")) == NULL) {
log_it("CRON", getpid(), "error", "dup(2) failed");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
/*
@@ -371,14 +371,14 @@ run_job(atjob *job, char *atfile)
(void)fclose(fp);
if (!safe_p(pw->pw_name, mailto))
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
if ((uid_t)nuid != job->uid) {
log_it(pw->pw_name, getpid(), "UID MISMATCH", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if ((gid_t)ngid != job->gid) {
log_it(pw->pw_name, getpid(), "GID MISMATCH", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
/* mark ourselves as different to PS command watchers */
@@ -390,7 +390,7 @@ run_job(atjob *job, char *atfile)
switch ((pid = fork())) {
case -1:
log_it("CRON", getpid(), "error", "can't fork");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
/*NOTREACHED*/
case 0:
Debug(DPROC, ("[%ld] grandchild process fork()'ed\n",
@@ -405,19 +405,19 @@ run_job(atjob *job, char *atfile)
/* Connect grandchild's stdin to the at job file. */
if (lseek(fd, (off_t) 0, SEEK_SET) < 0) {
perror("lseek");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
- if (fd != STDIN) {
- dup2(fd, STDIN);
+ if (fd != STDIN_FILENO) {
+ dup2(fd, STDIN_FILENO);
close(fd);
}
/* Connect stdout/stderr to the pipe from our parent. */
- if (output_pipe[WRITE_PIPE] != STDOUT) {
- dup2(output_pipe[WRITE_PIPE], STDOUT);
+ if (output_pipe[WRITE_PIPE] != STDOUT_FILENO) {
+ dup2(output_pipe[WRITE_PIPE], STDOUT_FILENO);
close(output_pipe[WRITE_PIPE]);
}
- dup2(STDOUT, STDERR);
+ dup2(STDOUT_FILENO, STDERR_FILENO);
close(output_pipe[READ_PIPE]);
(void) setsid();
@@ -432,7 +432,7 @@ run_job(atjob *job, char *atfile)
fprintf(stderr,
"Cannot get login class for %s\n",
pw->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
@@ -440,18 +440,18 @@ run_job(atjob *job, char *atfile)
fprintf(stderr,
"setusercontext failed for %s\n",
pw->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
# ifdef BSD_AUTH
as = auth_open();
if (as == NULL || auth_setpwd(as, pw) != 0) {
fprintf(stderr, "can't malloc\n");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (auth_approval(as, lc, pw->pw_name, "cron") <= 0) {
fprintf(stderr, "approval failed for %s\n",
pw->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
auth_close(as);
# endif /* BSD_AUTH */
@@ -461,7 +461,7 @@ run_job(atjob *job, char *atfile)
if (setgid(pw->pw_gid) || initgroups(pw->pw_name, pw->pw_gid)) {
fprintf(stderr,
"unable to set groups for %s\n", pw->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#if (defined(BSD)) && (BSD >= 199103)
setlogin(pw->pw_name);
@@ -469,7 +469,7 @@ run_job(atjob *job, char *atfile)
if (setuid(pw->pw_uid)) {
fprintf(stderr, "unable to set uid to %lu\n",
(unsigned long)pw->pw_uid);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#endif /* LOGIN_CAP */
@@ -485,7 +485,7 @@ run_job(atjob *job, char *atfile)
fprintf(stderr,
"debug DTEST is on, not exec'ing at job %s\n",
atfile);
- _exit(OK_EXIT);
+ _exit(EXIT_SUCCESS);
}
#endif /*DEBUGGING*/
@@ -501,7 +501,7 @@ run_job(atjob *job, char *atfile)
nenvp[0] = NULL;
if (execve(_PATH_BSHELL, nargv, nenvp) != 0) {
perror("execve: " _PATH_BSHELL);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
break;
default:
@@ -522,7 +522,7 @@ run_job(atjob *job, char *atfile)
if ((fp = fdopen(output_pipe[READ_PIPE], "r")) == NULL) {
perror("fdopen");
- (void) _exit(ERROR_EXIT);
+ (void) _exit(EXIT_FAILURE);
}
nread = fread(buf, 1, sizeof(buf), fp);
if (nread != 0 || always_mail) {
@@ -540,11 +540,11 @@ run_job(atjob *job, char *atfile)
if (snprintf(mailcmd, sizeof mailcmd, MAILFMT,
MAILARG) >= sizeof mailcmd) {
fprintf(stderr, "mailcmd too long\n");
- (void) _exit(ERROR_EXIT);
+ (void) _exit(EXIT_FAILURE);
}
if (!(mail = cron_popen(mailcmd, "w", pw))) {
perror(mailcmd);
- (void) _exit(ERROR_EXIT);
+ (void) _exit(EXIT_FAILURE);
}
fprintf(mail, "From: %s (Atrun Service)\n", pw->pw_name);
fprintf(mail, "To: %s\n", mailto);
@@ -600,9 +600,9 @@ run_job(atjob *job, char *atfile)
break;
}
}
- _exit(OK_EXIT);
+ _exit(EXIT_SUCCESS);
bad_file:
log_it(pw->pw_name, getpid(), "BAD FILE FORMAT", atfile);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
diff --git a/usr.sbin/cron/cron.c b/usr.sbin/cron/cron.c
index 63aff8c111e..ea942c7932f 100644
--- a/usr.sbin/cron/cron.c
+++ b/usr.sbin/cron/cron.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cron.c,v 1.42 2011/01/18 14:09:54 millert Exp $ */
+/* $OpenBSD: cron.c,v 1.43 2011/08/22 19:32:42 millert Exp $ */
/* Copyright 1988,1990,1993,1994 by Paul Vixie
* All rights reserved
@@ -59,7 +59,7 @@ usage(void) {
fprintf(stderr, "debugging flags (none supported in this build)]");
#endif
fprintf(stderr, "]\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
int
@@ -101,7 +101,7 @@ main(int argc, char *argv[]) {
if (putenv("PATH="_PATH_DEFPATH) < 0) {
log_it("CRON", getpid(), "DEATH", "can't malloc");
- exit(1);
+ exit(EXIT_FAILURE);
}
/* if there are no debug flags turned on, fork as a daemon should.
@@ -114,23 +114,23 @@ main(int argc, char *argv[]) {
switch (fork()) {
case -1:
log_it("CRON",getpid(),"DEATH","can't fork");
- exit(0);
+ exit(EXIT_FAILURE);
break;
case 0:
/* child process */
(void) setsid();
if ((fd = open(_PATH_DEVNULL, O_RDWR, 0)) >= 0) {
- (void) dup2(fd, STDIN);
- (void) dup2(fd, STDOUT);
- (void) dup2(fd, STDERR);
- if (fd != STDERR)
+ (void) dup2(fd, STDIN_FILENO);
+ (void) dup2(fd, STDOUT_FILENO);
+ (void) dup2(fd, STDERR_FILENO);
+ if (fd != STDERR_FILENO)
(void) close(fd);
}
log_it("CRON",getpid(),"STARTUP",CRON_VERSION);
break;
default:
/* parent process should just die */
- _exit(0);
+ _exit(EXIT_SUCCESS);
}
}
diff --git a/usr.sbin/cron/crontab.c b/usr.sbin/cron/crontab.c
index ed53b581e27..d0993d3e1a2 100644
--- a/usr.sbin/cron/crontab.c
+++ b/usr.sbin/cron/crontab.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: crontab.c,v 1.63 2011/08/19 20:53:36 millert Exp $ */
+/* $OpenBSD: crontab.c,v 1.64 2011/08/22 19:32:42 millert Exp $ */
/* Copyright 1988,1990,1993,1994 by Paul Vixie
* All rights reserved
@@ -70,7 +70,7 @@ usage(const char *msg) {
"\t-e\t(edit user's crontab)\n"
"\t-l\t(list user's crontab)\n"
"\t-r\t(delete user's crontab)\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
int
@@ -93,9 +93,9 @@ main(int argc, char *argv[]) {
User, ProgramName);
fprintf(stderr, "See crontab(1) for more information\n");
log_it(RealUser, Pid, "AUTH", "crontab command not allowed");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
- exitstatus = OK_EXIT;
+ exitstatus = EXIT_SUCCESS;
switch (Option) {
case opt_list:
list_cmd();
@@ -108,10 +108,10 @@ main(int argc, char *argv[]) {
break;
case opt_replace:
if (replace_cmd() < 0)
- exitstatus = ERROR_EXIT;
+ exitstatus = EXIT_FAILURE;
break;
default:
- exitstatus = ERROR_EXIT;
+ exitstatus = EXIT_FAILURE;
break;
}
exit(exitstatus);
@@ -126,11 +126,11 @@ parse_args(int argc, char *argv[]) {
fprintf(stderr, "%s: your UID isn't in the passwd file.\n",
ProgramName);
fprintf(stderr, "bailing out.\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (strlen(pw->pw_name) >= sizeof User) {
fprintf(stderr, "username too long\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
strlcpy(User, pw->pw_name, sizeof(User));
strlcpy(RealUser, User, sizeof(RealUser));
@@ -148,12 +148,12 @@ parse_args(int argc, char *argv[]) {
if (MY_UID(pw) != ROOT_UID) {
fprintf(stderr,
"must be privileged to use -u\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (!(pw = getpwnam(optarg))) {
fprintf(stderr, "%s: user `%s' unknown\n",
ProgramName, optarg);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (strlcpy(User, optarg, sizeof User) >= sizeof User)
usage("username too long");
@@ -211,15 +211,15 @@ parse_args(int argc, char *argv[]) {
if (swap_gids() < OK) {
perror("swapping gids");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (!(NewCrontab = fopen(Filename, "r"))) {
perror(Filename);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (swap_gids_back() < OK) {
perror("swapping gids back");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
}
}
@@ -236,14 +236,14 @@ list_cmd(void) {
log_it(RealUser, Pid, "LIST", User);
if (snprintf(n, sizeof n, "%s/%s", SPOOL_DIR, User) >= sizeof(n)) {
fprintf(stderr, "path too long\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (!(f = fopen(n, "r"))) {
if (errno == ENOENT)
fprintf(stderr, "no crontab for %s\n", User);
else
perror(n);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
/* file is open. copy to stdout, close.
@@ -261,14 +261,14 @@ delete_cmd(void) {
log_it(RealUser, Pid, "DELETE", User);
if (snprintf(n, sizeof n, "%s/%s", SPOOL_DIR, User) >= sizeof(n)) {
fprintf(stderr, "path too long\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (unlink(n) != 0) {
if (errno == ENOENT)
fprintf(stderr, "no crontab for %s\n", User);
else
perror(n);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
poke_daemon(SPOOL_DIR, RELOAD_CRON);
}
@@ -291,18 +291,18 @@ edit_cmd(void) {
log_it(RealUser, Pid, "BEGIN EDIT", User);
if (snprintf(n, sizeof n, "%s/%s", SPOOL_DIR, User) >= sizeof(n)) {
fprintf(stderr, "path too long\n");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (!(f = fopen(n, "r"))) {
if (errno != ENOENT) {
perror(n);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
fprintf(stderr, "no crontab for %s - using an empty one\n",
User);
if (!(f = fopen(_PATH_DEVNULL, "r"))) {
perror(_PATH_DEVNULL);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
}
@@ -330,12 +330,12 @@ edit_cmd(void) {
}
if (swap_gids() < OK) {
perror("swapping gids");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
t = mkstemp(Filename);
if (swap_gids_back() < OK) {
perror("swapping gids back");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (t == -1) {
perror(Filename);
@@ -352,7 +352,7 @@ edit_cmd(void) {
fclose(f);
if (fflush(NewCrontab) < OK) {
perror(Filename);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
(void)futimens(t, ts);
again:
@@ -363,14 +363,14 @@ edit_cmd(void) {
fatal:
if (swap_gids() < OK) {
perror("swapping gids");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
unlink(Filename);
if (swap_gids_back() < OK) {
perror("swapping gids back");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
/* we still have the file open. editors will generally rewrite the
@@ -392,7 +392,7 @@ edit_cmd(void) {
if (timespeccmp(&ts[1], &statbuf.st_mtim, ==)) {
if (swap_gids() < OK) {
perror("swapping gids");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (lstat(Filename, &xstatbuf) == 0 &&
statbuf.st_ino != xstatbuf.st_ino) {
@@ -401,7 +401,7 @@ edit_cmd(void) {
}
if (swap_gids_back() < OK) {
perror("swapping gids back");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
fprintf(stderr, "%s: no changes made to crontab\n",
ProgramName);
@@ -445,12 +445,12 @@ edit_cmd(void) {
remove:
if (swap_gids() < OK) {
perror("swapping gids");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
unlink(Filename);
if (swap_gids_back() < OK) {
perror("swapping gids back");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
done:
log_it(RealUser, Pid, "END EDIT", User);
@@ -663,7 +663,7 @@ static void
die(int x) {
if (TempFilename[0])
(void) unlink(TempFilename);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
static void
diff --git a/usr.sbin/cron/do_command.c b/usr.sbin/cron/do_command.c
index b272e5ccc6b..299e6f44c57 100644
--- a/usr.sbin/cron/do_command.c
+++ b/usr.sbin/cron/do_command.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: do_command.c,v 1.35 2011/03/03 15:08:14 millert Exp $ */
+/* $OpenBSD: do_command.c,v 1.36 2011/08/22 19:32:42 millert Exp $ */
/* Copyright 1988,1990,1993,1994 by Paul Vixie
* All rights reserved
@@ -48,7 +48,7 @@ do_command(entry *e, user *u) {
child_process(e, u);
Debug(DPROC, ("[%ld] child process done, exiting\n",
(long)getpid()))
- _exit(OK_EXIT);
+ _exit(EXIT_SUCCESS);
break;
default:
/* parent process */
@@ -127,7 +127,7 @@ child_process(entry *e, user *u) {
switch (fork()) {
case -1:
log_it("CRON", getpid(), "error", "can't fork");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
/*NOTREACHED*/
case 0:
Debug(DPROC, ("[%ld] grandchild process fork()'ed\n",
@@ -165,15 +165,15 @@ child_process(entry *e, user *u) {
/* grandchild process. make std{in,out} be the ends of
* pipes opened by our daddy; make stderr go to stdout.
*/
- if (stdin_pipe[READ_PIPE] != STDIN) {
- dup2(stdin_pipe[READ_PIPE], STDIN);
+ if (stdin_pipe[READ_PIPE] != STDIN_FILENO) {
+ dup2(stdin_pipe[READ_PIPE], STDIN_FILENO);
close(stdin_pipe[READ_PIPE]);
}
- if (stdout_pipe[WRITE_PIPE] != STDOUT) {
- dup2(stdout_pipe[WRITE_PIPE], STDOUT);
+ if (stdout_pipe[WRITE_PIPE] != STDOUT_FILENO) {
+ dup2(stdout_pipe[WRITE_PIPE], STDOUT_FILENO);
close(stdout_pipe[WRITE_PIPE]);
}
- dup2(STDOUT, STDERR);
+ dup2(STDOUT_FILENO, STDERR_FILENO);
/* set our directory, uid and gid. Set gid first, since once
* we set uid, we've lost root privileges.
@@ -192,24 +192,24 @@ child_process(entry *e, user *u) {
fprintf(stderr,
"unable to get login class for %s\n",
e->pwd->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (setusercontext(lc, e->pwd, e->pwd->pw_uid, LOGIN_SETALL) < 0) {
fprintf(stderr,
"setusercontext failed for %s\n",
e->pwd->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#ifdef BSD_AUTH
as = auth_open();
if (as == NULL || auth_setpwd(as, e->pwd) != 0) {
fprintf(stderr, "can't malloc\n");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
if (auth_approval(as, lc, usernm, "cron") <= 0) {
fprintf(stderr, "approval failed for %s\n",
e->pwd->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
auth_close(as);
#endif /* BSD_AUTH */
@@ -232,7 +232,7 @@ child_process(entry *e, user *u) {
if (setgid(e->pwd->pw_gid) || initgroups(usernm, e->pwd->pw_gid)) {
fprintf(stderr,
"unable to set groups for %s\n", e->pwd->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#if (defined(BSD)) && (BSD >= 199103)
setlogin(usernm);
@@ -241,7 +241,7 @@ child_process(entry *e, user *u) {
fprintf(stderr,
"unable to set uid to %lu\n",
(unsigned long)e->pwd->pw_uid);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#endif /* LOGIN_CAP */
@@ -261,13 +261,13 @@ child_process(entry *e, user *u) {
"debug DTEST is on, not exec'ing command.\n");
fprintf(stderr,
"\tcmd='%s' shell='%s'\n", e->cmd, shell);
- _exit(OK_EXIT);
+ _exit(EXIT_SUCCESS);
}
# endif /*DEBUGGING*/
execle(shell, shell, "-c", e->cmd, (char *)NULL, e->envp);
fprintf(stderr, "execle: couldn't exec `%s'\n", shell);
perror("execle");
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
break;
default:
@@ -345,7 +345,7 @@ child_process(entry *e, user *u) {
Debug(DPROC, ("[%ld] child2 done sending to grandchild\n",
(long)getpid()))
- _exit(OK_EXIT);
+ _exit(EXIT_SUCCESS);
}
/* close the pipe to the grandkiddie's stdin, since its wicked uncle
@@ -406,11 +406,11 @@ child_process(entry *e, user *u) {
if (snprintf(mailcmd, sizeof mailcmd, MAILFMT,
MAILARG) >= sizeof mailcmd) {
fprintf(stderr, "mailcmd too long\n");
- (void) _exit(ERROR_EXIT);
+ (void) _exit(EXIT_FAILURE);
}
if (!(mail = cron_popen(mailcmd, "w", e->pwd))) {
perror(mailcmd);
- (void) _exit(ERROR_EXIT);
+ (void) _exit(EXIT_FAILURE);
}
fprintf(mail, "From: root (Cron Daemon)\n");
fprintf(mail, "To: %s\n", mailto);
diff --git a/usr.sbin/cron/macros.h b/usr.sbin/cron/macros.h
index ba05c8ffc5f..e26123527b7 100644
--- a/usr.sbin/cron/macros.h
+++ b/usr.sbin/cron/macros.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: macros.h,v 1.6 2004/06/17 22:11:55 millert Exp $ */
+/* $OpenBSD: macros.h,v 1.7 2011/08/22 19:32:42 millert Exp $ */
/*
* Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
@@ -37,11 +37,6 @@
#define INIT_PID 1 /* parent of orphans */
#define READ_PIPE 0 /* which end of a pipe pair do you read? */
#define WRITE_PIPE 1 /* or write to? */
-#define STDIN 0 /* what is stdin's file descriptor? */
-#define STDOUT 1 /* stdout's? */
-#define STDERR 2 /* stderr's? */
-#define ERROR_EXIT 1 /* exit() with this will scare the shell */
-#define OK_EXIT 0 /* exit() with this is considered 'normal' */
#define MAX_FNAME 100 /* max length of internally generated fn */
#define MAX_COMMAND 1000 /* max length of internally generated cmd */
#define MAX_ENVSTR 1000 /* max length of envvar=value\0 strings */
diff --git a/usr.sbin/cron/misc.c b/usr.sbin/cron/misc.c
index af5792382c4..a5e9b420f21 100644
--- a/usr.sbin/cron/misc.c
+++ b/usr.sbin/cron/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.43 2011/07/09 14:49:14 dhill Exp $ */
+/* $OpenBSD: misc.c,v 1.44 2011/08/22 19:32:42 millert Exp $ */
/* Copyright 1988,1990,1993,1994 by Paul Vixie
* All rights reserved
@@ -128,12 +128,12 @@ set_cron_uid(void) {
#if defined(BSD) || defined(POSIX)
if (seteuid(ROOT_UID) < OK) {
perror("seteuid");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
#else
if (setuid(ROOT_UID) < OK) {
perror("setuid");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
#endif
}
@@ -156,18 +156,18 @@ set_cron_cwd(void) {
} else {
fprintf(stderr, "%s: ", CRONDIR);
perror("mkdir");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
}
if (!S_ISDIR(sb.st_mode)) {
fprintf(stderr, "'%s' is not a directory, bailing out.\n",
CRONDIR);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (chdir(CRONDIR) < OK) {
fprintf(stderr, "cannot chdir(%s), bailing out.\n", CRONDIR);
perror(CRONDIR);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
/* CRONDIR okay (now==CWD), now look at SPOOL_DIR ("tabs" or some such)
@@ -180,13 +180,13 @@ set_cron_cwd(void) {
} else {
fprintf(stderr, "%s: ", SPOOL_DIR);
perror("mkdir");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
}
if (!S_ISDIR(sb.st_mode)) {
fprintf(stderr, "'%s' is not a directory, bailing out.\n",
SPOOL_DIR);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (grp != NULL) {
if (sb.st_gid != grp->gr_gid)
@@ -205,13 +205,13 @@ set_cron_cwd(void) {
} else {
fprintf(stderr, "%s: ", AT_DIR);
perror("mkdir");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
}
if (!S_ISDIR(sb.st_mode)) {
fprintf(stderr, "'%s' is not a directory, bailing out.\n",
AT_DIR);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (grp != NULL) {
if (sb.st_gid != grp->gr_gid)
@@ -221,7 +221,7 @@ set_cron_cwd(void) {
}
}
-/* acquire_daemonlock() - write our PID into /etc/cron.pid, unless
+/* acquire_daemonlock() - write our PID into /var/run/cron.pid, unless
* another daemon is already running, which we detect here.
*
* note: main() calls us twice; once before forking, once after.
@@ -258,7 +258,7 @@ acquire_daemonlock(int closeflag) {
strerror(save_errno));
fprintf(stderr, "%s: %s\n", ProgramName, buf);
log_it("CRON", getpid(), "DEATH", buf);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
/* couldn't lock the pid file, try to read existing. */
@@ -277,19 +277,19 @@ acquire_daemonlock(int closeflag) {
}
fprintf(stderr, "%s: %s\n", ProgramName, buf);
log_it("CRON", getpid(), "DEATH", buf);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
- /* fd must be > STDERR since we dup fd 0-2 to /dev/null */
- if (fd <= STDERR) {
- if (dup2(fd, STDERR + 1) < 0) {
+ /* fd must be > STDERR_FILENO since we dup fd 0-2 to /dev/null */
+ if (fd <= STDERR_FILENO) {
+ if (dup2(fd, STDERR_FILENO + 1) < 0) {
snprintf(buf, sizeof buf,
"can't dup pid fd: %s", strerror(errno));
fprintf(stderr, "%s: %s\n", ProgramName, buf);
log_it("CRON", getpid(), "DEATH", buf);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
close(fd);
- fd = STDERR + 1;
+ fd = STDERR_FILENO + 1;
}
(void) fcntl(fd, F_SETFD, FD_CLOEXEC);
}
@@ -483,7 +483,7 @@ log_it(const char *username, PID_T xpid, const char *event, const char *detail)
if (LogFD >= OK)
perror(LOG_FILE);
fprintf(stderr, "%s: can't write to log file\n", ProgramName);
- write(STDERR, msg, strlen(msg));
+ write(STDERR_FILENO, msg, strlen(msg));
}
free(msg);
@@ -706,28 +706,28 @@ open_socket(void)
fprintf(stderr, "%s: can't create socket: %s\n",
ProgramName, strerror(errno));
log_it("CRON", getpid(), "DEATH", "can't create socket");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (fcntl(sock, F_SETFD, FD_CLOEXEC) == -1) {
fprintf(stderr, "%s: can't make socket close on exec: %s\n",
ProgramName, strerror(errno));
log_it("CRON", getpid(), "DEATH",
"can't make socket close on exec");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
if (fcntl(sock, F_SETFL, O_NONBLOCK) == -1) {
fprintf(stderr, "%s: can't make socket non-blocking: %s\n",
ProgramName, strerror(errno));
log_it("CRON", getpid(), "DEATH",
"can't make socket non-blocking");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
bzero(&s_un, sizeof(s_un));
if (snprintf(s_un.sun_path, sizeof s_un.sun_path, "%s/%s",
SPOOL_DIR, CRONSOCK) >= sizeof(s_un.sun_path)) {
fprintf(stderr, "%s/%s: path too long\n", SPOOL_DIR, CRONSOCK);
log_it("CRON", getpid(), "DEATH", "path too long");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
unlink(s_un.sun_path);
s_un.sun_family = AF_UNIX;
@@ -741,14 +741,14 @@ open_socket(void)
ProgramName, strerror(errno));
log_it("CRON", getpid(), "DEATH", "can't bind socket");
umask(omask);
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
umask(omask);
if (listen(sock, SOMAXCONN)) {
fprintf(stderr, "%s: can't listen on socket: %s\n",
ProgramName, strerror(errno));
log_it("CRON", getpid(), "DEATH", "can't listen on socket");
- exit(ERROR_EXIT);
+ exit(EXIT_FAILURE);
}
chmod(s_un.sun_path, 0660);
diff --git a/usr.sbin/cron/popen.c b/usr.sbin/cron/popen.c
index 5cef5ddd791..613d1e8a094 100644
--- a/usr.sbin/cron/popen.c
+++ b/usr.sbin/cron/popen.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: popen.c,v 1.21 2009/10/27 23:59:51 deraadt Exp $ */
+/* $OpenBSD: popen.c,v 1.22 2011/08/22 19:32:42 millert Exp $ */
/*
* Copyright (c) 1988, 1993, 1994
@@ -89,7 +89,7 @@ cron_popen(char *program, char *type, struct passwd *pw) {
fprintf(stderr,
"setusercontext failed for %s\n",
pw->pw_name);
- _exit(ERROR_EXIT);
+ _exit(EXIT_FAILURE);
}
#else
if (setgid(pw->pw_gid) < 0 ||
@@ -111,15 +111,15 @@ cron_popen(char *program, char *type, struct passwd *pw) {
#endif /* LOGIN_CAP */
}
if (*type == 'r') {
- if (pdes[1] != STDOUT) {
- dup2(pdes[1], STDOUT);
+ if (pdes[1] != STDOUT_FILENO) {
+ dup2(pdes[1], STDOUT_FILENO);
(void)close(pdes[1]);
}
- dup2(STDOUT, STDERR); /* stderr too! */
+ dup2(STDOUT_FILENO, STDERR_FILENO);
(void)close(pdes[0]);
} else {
- if (pdes[0] != STDIN) {
- dup2(pdes[0], STDIN);
+ if (pdes[0] != STDIN_FILENO) {
+ dup2(pdes[0], STDIN_FILENO);
(void)close(pdes[0]);
}
(void)close(pdes[1]);