summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-03-14 09:01:11 +0000
committerEric Andersen <andersen@codepoet.org>2001-03-14 09:01:11 +0000
commit53f5061c7e823f7ee511023f92b19980b40fdefd (patch)
tree74d22491dd1586c63e78af7a53a43ac84efd1097 /init
parentbdc8db9685374c6e71ca89a194c0cfcf97503d69 (diff)
downloadbusybox-w32-53f5061c7e823f7ee511023f92b19980b40fdefd.tar.gz
busybox-w32-53f5061c7e823f7ee511023f92b19980b40fdefd.tar.bz2
busybox-w32-53f5061c7e823f7ee511023f92b19980b40fdefd.zip
Fix init so that checking for terminal devices is delayed until the
devices are actually used, thereby allowing devfsd based systems to work. This should fix bug #1133 -Erik
Diffstat (limited to 'init')
-rw-r--r--init/init.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/init/init.c b/init/init.c
index a0f15b0ff..53e9744c5 100644
--- a/init/init.c
+++ b/init/init.c
@@ -440,6 +440,12 @@ static pid_t run(char *command, char *terminal, int get_enter)
440 signal(SIGHUP, SIG_DFL); 440 signal(SIGHUP, SIG_DFL);
441 441
442 if ((fd = device_open(terminal, O_RDWR)) < 0) { 442 if ((fd = device_open(terminal, O_RDWR)) < 0) {
443 struct stat statBuf;
444 if (stat(terminal, &statBuf) != 0) {
445 message(LOG | CONSOLE, "device '%s' does not exist.\n",
446 terminal);
447 exit(1);
448 }
443 message(LOG | CONSOLE, "Bummer, can't open %s\r\n", terminal); 449 message(LOG | CONSOLE, "Bummer, can't open %s\r\n", terminal);
444 exit(1); 450 exit(1);
445 } 451 }
@@ -813,16 +819,8 @@ static void parse_inittab(void)
813 while (a->name != 0) { 819 while (a->name != 0) {
814 if (strcmp(a->name, action) == 0) { 820 if (strcmp(a->name, action) == 0) {
815 if (*id != '\0') { 821 if (*id != '\0') {
816 struct stat statBuf;
817
818 strcpy(tmpConsole, "/dev/"); 822 strcpy(tmpConsole, "/dev/");
819 strncat(tmpConsole, id, 200); 823 strncat(tmpConsole, id, 200);
820 if (stat(tmpConsole, &statBuf) != 0) {
821 message(LOG | CONSOLE,
822 "device '%s' does not exist. Did you read the directions?\n",
823 tmpConsole);
824 break;
825 }
826 id = tmpConsole; 824 id = tmpConsole;
827 } 825 }
828 new_initAction(a->action, process, id); 826 new_initAction(a->action, process, id);