aboutsummaryrefslogtreecommitdiff
path: root/miscutils/crontab.c
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils/crontab.c')
-rw-r--r--miscutils/crontab.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/miscutils/crontab.c b/miscutils/crontab.c
index 163e15dce..16d7fdf69 100644
--- a/miscutils/crontab.c
+++ b/miscutils/crontab.c
@@ -20,8 +20,9 @@
20static void edit_file(const struct passwd *pas, const char *file) 20static void edit_file(const struct passwd *pas, const char *file)
21{ 21{
22 const char *ptr; 22 const char *ptr;
23 int pid = xvfork(); 23 pid_t pid;
24 24
25 pid = xvfork();
25 if (pid) { /* parent */ 26 if (pid) { /* parent */
26 wait4pid(pid); 27 wait4pid(pid);
27 return; 28 return;
@@ -30,7 +31,7 @@ static void edit_file(const struct passwd *pas, const char *file)
30 /* CHILD - change user and run editor */ 31 /* CHILD - change user and run editor */
31 /* initgroups, setgid, setuid */ 32 /* initgroups, setgid, setuid */
32 change_identity(pas); 33 change_identity(pas);
33 setup_environment(DEFAULT_SHELL, 34 setup_environment(pas->pw_shell,
34 SETUP_ENV_CHANGEENV | SETUP_ENV_TO_TMP, 35 SETUP_ENV_CHANGEENV | SETUP_ENV_TO_TMP,
35 pas); 36 pas);
36 ptr = getenv("VISUAL"); 37 ptr = getenv("VISUAL");
@@ -41,7 +42,7 @@ static void edit_file(const struct passwd *pas, const char *file)
41 } 42 }
42 43
43 BB_EXECLP(ptr, ptr, file, NULL); 44 BB_EXECLP(ptr, ptr, file, NULL);
44 bb_perror_msg_and_die("exec %s", ptr); 45 bb_perror_msg_and_die("can't execute '%s'", ptr);
45} 46}
46 47
47static int open_as_user(const struct passwd *pas, const char *file) 48static int open_as_user(const struct passwd *pas, const char *file)