From 82604e973085f91f1b99cacea08963d0d1468084 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 1 Jul 2008 15:59:42 +0000 Subject: revert last two commits. vfork cannot be used in subroutine, it trashes stack on return --- miscutils/crontab.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'miscutils/crontab.c') diff --git a/miscutils/crontab.c b/miscutils/crontab.c index 4bba9fb44..dc3179dac 100644 --- a/miscutils/crontab.c +++ b/miscutils/crontab.c @@ -38,8 +38,10 @@ static void change_user(const struct passwd *pas) static void edit_file(const struct passwd *pas, const char *file) { const char *ptr; - int pid = xvfork(); + int pid = vfork(); + if (pid < 0) /* failure */ + bb_perror_msg_and_die("vfork"); if (pid) { /* parent */ wait4pid(pid); return; @@ -63,7 +65,9 @@ static int open_as_user(const struct passwd *pas, const char *file) pid_t pid; char c; - pid = xvfork(); + pid = vfork(); + if (pid < 0) /* ERROR */ + bb_perror_msg_and_die("vfork"); if (pid) { /* PARENT */ if (wait4pid(pid) == 0) { /* exitcode 0: child says it can read */ -- cgit v1.2.3