chris@mimsy.UUCP (Chris Torek) (08/26/87)
Index: etc/cron.c 4.3BSD Fix
Description:
4.3BSD has a fancy new syslog. Cron does not use it.
Repeat-By:
Misspell a user name in crontab, e.g.
Fix:
RCS file: RCS/cron.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -c2 -r1.1 -r1.2
*** /tmp/,RCSt1005709 Tue Aug 25 22:31:04 1987
--- /tmp/,RCSt2005709 Tue Aug 25 22:31:07 1987
***************
*** 14,17 ****
--- 14,18 ----
#include <pwd.h>
#include <fcntl.h>
+ #include <syslog.h>
#define LISTS (2*BUFSIZ)
***************
*** 59,64 ****
extern char *optarg;
! if (fork())
exit(0);
c = getopt(argc, argv, "d:");
if (c == 'd') {
--- 60,78 ----
extern char *optarg;
! openlog("cron", LOG_PID | LOG_CONS | LOG_NOWAIT, LOG_DAEMON);
! switch (fork()) {
!
! case -1:
! syslog(LOG_ERR, "fork: %m");
! exit(1);
! /* NOTREACHED */
!
! case 0:
! break;
!
! default:
exit(0);
+ /* NOTREACHED */
+ }
c = getopt(argc, argv, "d:");
if (c == 'd') {
***************
*** 188,193 ****
int pid;
! if (fork()) {
return;
}
--- 202,217 ----
int pid;
! switch (fork()) {
!
! case -1:
! syslog(LOG_ERR, "cannot fork: %m (running %.40s%s)",
! s, strlen(s) > 30 ? "..." : "");
return;
+
+ case 0:
+ break;
+
+ default:
+ return;
}
***************
*** 198,201 ****
--- 222,226 ----
s++;
if ((pwd = getpwnam(user)) == NULL) {
+ syslog(LOG_ERR, "invalid user name \"%s\"", user);
dprintf(debug, "%d: cannot find %s\n", pid, user),
fflush(debug);
***************
*** 205,213 ****
initgroups(pwd->pw_name, pwd->pw_gid);
(void) setuid(pwd->pw_uid);
! freopen("/", "r", stdin);
dprintf(debug, "%d: executing %s", pid, s), fflush (debug);
execl("/bin/sh", "sh", "-c", s, 0);
dprintf(debug, "%d: cannot execute sh\n", pid), fflush (debug);
! exit(0);
}
--- 230,240 ----
initgroups(pwd->pw_name, pwd->pw_gid);
(void) setuid(pwd->pw_uid);
! (void) freopen("/", "r", stdin);
! closelog();
dprintf(debug, "%d: executing %s", pid, s), fflush (debug);
execl("/bin/sh", "sh", "-c", s, 0);
+ syslog(LOG_ERR, "cannot exec /bin/sh: %m");
dprintf(debug, "%d: cannot execute sh\n", pid), fflush (debug);
! exit(1);
}
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
Domain: chris@mimsy.umd.edu Path: seismo!mimsy!chris