From d44cf58f45ffa31c22ac4f0fcf2369890cb2da28 Mon Sep 17 00:00:00 2001 From: Ken Smith Date: Fri, 5 Aug 2005 13:39:08 +0000 Subject: [PATCH] The /stand directory now disappears out from under sysinstall while it is running during installations. The vsystem() function does get used after this happens (e.g. if you manually configure the network interface and ask it to enable the interface) so it needs to be a little smarter about whether it uses /stand/sh or /bin/sh. MFC after: 3 days --- usr.sbin/sade/system.c | 3 ++- usr.sbin/sysinstall/system.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/usr.sbin/sade/system.c b/usr.sbin/sade/system.c index ac453ea689a..00abb4ef494 100644 --- a/usr.sbin/sade/system.c +++ b/usr.sbin/sade/system.c @@ -408,6 +408,7 @@ vsystem(char *fmt, ...) sig_t intsave, quitsave; char *cmd; int i; + struct stat sb; cmd = (char *)alloca(FILENAME_MAX); cmd[0] = '\0'; @@ -438,7 +439,7 @@ vsystem(char *fmt, ...) close(1); open("/dev/null", O_WRONLY); dup2(1, 2); } - if (RunningAsInit) + if (stat("/stand/sh", &sb) == 0) execl("/stand/sh", "/stand/sh", "-c", cmd, (char *)NULL); else execl("/bin/sh", "/bin/sh", "-c", cmd, (char *)NULL); diff --git a/usr.sbin/sysinstall/system.c b/usr.sbin/sysinstall/system.c index ac453ea689a..00abb4ef494 100644 --- a/usr.sbin/sysinstall/system.c +++ b/usr.sbin/sysinstall/system.c @@ -408,6 +408,7 @@ vsystem(char *fmt, ...) sig_t intsave, quitsave; char *cmd; int i; + struct stat sb; cmd = (char *)alloca(FILENAME_MAX); cmd[0] = '\0'; @@ -438,7 +439,7 @@ vsystem(char *fmt, ...) close(1); open("/dev/null", O_WRONLY); dup2(1, 2); } - if (RunningAsInit) + if (stat("/stand/sh", &sb) == 0) execl("/stand/sh", "/stand/sh", "-c", cmd, (char *)NULL); else execl("/bin/sh", "/bin/sh", "-c", cmd, (char *)NULL);