View | Details | Raw Unified | Return to bug 97002
Collapse All | Expand All

(-)./cron/do_command.c (-6 / +3 lines)
Lines 26-34 Link Here
26
#if defined(sequent)
26
#if defined(sequent)
27
# include <sys/universe.h>
27
# include <sys/universe.h>
28
#endif
28
#endif
29
#if defined(SYSLOG)
30
# include <syslog.h>
31
#endif
32
#if defined(LOGIN_CAP)
29
#if defined(LOGIN_CAP)
33
# include <login_cap.h>
30
# include <login_cap.h>
34
#endif
31
#endif
Lines 187-195 Link Here
187
184
188
		/* that's the last thing we'll log.  close the log files.
185
		/* that's the last thing we'll log.  close the log files.
189
		 */
186
		 */
190
#ifdef SYSLOG
187
		log_close();
191
		closelog();
192
#endif
193
188
194
		/* get new pgrp, void tty, etc.
189
		/* get new pgrp, void tty, etc.
195
		 */
190
		 */
Lines 388-393 Link Here
388
			register FILE	*mail;
383
			register FILE	*mail;
389
			register int	bytes = 1;
384
			register int	bytes = 1;
390
			int		status = 0;
385
			int		status = 0;
386
387
			signal(SIGPIPE, SIG_IGN);
391
388
392
			Debug(DPROC|DEXT,
389
			Debug(DPROC|DEXT,
393
				("[%d] got data (%x:%c) from grandchild\n",
390
				("[%d] got data (%x:%c) from grandchild\n",
(-)./cron/popen.c (-9 / +5 lines)
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...  */
(-)./lib/misc.c (-4 / +13 lines)
Lines 49-54 Link Here
49
49
50
static int		LogFD = ERR;
50
static int		LogFD = ERR;
51
51
52
#if defined(SYSLOG)
53
static int		syslog_open = 0;
54
#endif
55
56
52
57
53
int
58
int
54
strcmp_until(left, right, until)
59
strcmp_until(left, right, until)
Lines 459-468 Link Here
459
	register struct tm	*t = localtime(&now);
464
	register struct tm	*t = localtime(&now);
460
#endif /*LOG_FILE*/
465
#endif /*LOG_FILE*/
461
466
462
#if defined(SYSLOG)
463
	static int		syslog_open = 0;
464
#endif
465
466
#if defined(LOG_FILE)
467
#if defined(LOG_FILE)
467
	/* we assume that MAX_TEMPSTR will hold the date, time, &punctuation.
468
	/* we assume that MAX_TEMPSTR will hold the date, time, &punctuation.
468
	 */
469
	 */
Lines 535-544 Link Here
535
536
536
void
537
void
537
log_close() {
538
log_close() {
539
#if defined(LOG_FILE)
538
	if (LogFD != ERR) {
540
	if (LogFD != ERR) {
539
		close(LogFD);
541
		close(LogFD);
540
		LogFD = ERR;
542
		LogFD = ERR;
541
	}
543
	}
544
#endif
545
#ifdef SYSLOG
546
	if (syslog_open) {
547
		closelog();
548
		syslog_open = 0;
549
	}
550
#endif
542
}
551
}
543
552
544
553

Return to bug 97002