Lines 35-43
Link Here
|
35 |
#include <sys/signal.h> |
35 |
#include <sys/signal.h> |
36 |
#include <fcntl.h> |
36 |
#include <fcntl.h> |
37 |
#include <paths.h> |
37 |
#include <paths.h> |
38 |
#if defined(SYSLOG) |
|
|
39 |
# include <syslog.h> |
40 |
#endif |
41 |
#if defined(LOGIN_CAP) |
38 |
#if defined(LOGIN_CAP) |
42 |
# include <login_cap.h> |
39 |
# include <login_cap.h> |
43 |
#endif |
40 |
#endif |
Lines 65-70
Link Here
|
65 |
PID_T pid; |
62 |
PID_T pid; |
66 |
char *usernm; |
63 |
char *usernm; |
67 |
char *argv[MAX_ARGS + 1]; |
64 |
char *argv[MAX_ARGS + 1]; |
|
|
65 |
int status; |
68 |
# if defined(LOGIN_CAP) |
66 |
# if defined(LOGIN_CAP) |
69 |
struct passwd *pwd; |
67 |
struct passwd *pwd; |
70 |
login_cap_t *lc; |
68 |
login_cap_t *lc; |
Lines 112-118
Link Here
|
112 |
#endif |
110 |
#endif |
113 |
|
111 |
|
114 |
iop = NULL; |
112 |
iop = NULL; |
115 |
switch(pid = vfork()) { |
113 |
switch(pid = fork()) { |
116 |
case -1: /* error */ |
114 |
case -1: /* error */ |
117 |
(void)close(pdes[0]); |
115 |
(void)close(pdes[0]); |
118 |
(void)close(pdes[1]); |
116 |
(void)close(pdes[1]); |
Lines 120-129
Link Here
|
120 |
/* NOTREACHED */ |
118 |
/* NOTREACHED */ |
121 |
case 0: /* child */ |
119 |
case 0: /* child */ |
122 |
if (e != NULL) { |
120 |
if (e != NULL) { |
123 |
#ifdef SYSLOG |
121 |
log_close(); |
124 |
closelog(); |
|
|
125 |
#endif |
126 |
|
127 |
/* get new pgrp, void tty, etc. |
122 |
/* get new pgrp, void tty, etc. |
128 |
*/ |
123 |
*/ |
129 |
(void) setsid(); |
124 |
(void) setsid(); |
Lines 173-179
Link Here
|
173 |
(void) endpwent(); |
168 |
(void) endpwent(); |
174 |
# endif |
169 |
# endif |
175 |
/* set our directory, uid and gid. Set gid first, |
170 |
/* set our directory, uid and gid. Set gid first, |
176 |
* since once we set uid, we've lost root privledges. |
171 |
* since once we set uid, we've lost root privileges. |
177 |
*/ |
172 |
*/ |
178 |
setgid(e->gid); |
173 |
setgid(e->gid); |
179 |
# if defined(BSD) |
174 |
# if defined(BSD) |
Lines 193-198
Link Here
|
193 |
#else |
188 |
#else |
194 |
execvp(argv[0], argv); |
189 |
execvp(argv[0], argv); |
195 |
#endif |
190 |
#endif |
|
|
191 |
log_it("CRON", getpid(), "CAN'T EXEC", argv[0]); |
196 |
_exit(1); |
192 |
_exit(1); |
197 |
} |
193 |
} |
198 |
/* parent; assume fdopen can't fail... */ |
194 |
/* parent; assume fdopen can't fail... */ |