From: Michel Stam Date: Tue, 4 Nov 2014 16:40:16 +0000 (+0100) Subject: procd: Make askconsole work again when no tty is specified in inittab X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fprocd.git;a=commitdiff_plain;h=dc3ea949544090f91a24b05c5fde0bd9ab87f2ce;hp=44803f0b48e6b0bbc56b1f9f8c2ea9c8e1003302 procd: Make askconsole work again when no tty is specified in inittab Consider: ::askconsole:/bin/ash --login askconsole( ) checks for the existance of the tty, but if none is specified it will skip the remainder of the function. This means fork_worker( ) is never called and no process is spawned. This would leave routers without an initial console. Signed-off-by: Michel Stam --- diff --git a/inittab.c b/inittab.c index d7bb35b..be18482 100644 --- a/inittab.c +++ b/inittab.c @@ -176,18 +176,23 @@ static void askconsole(struct init_action *a) split = strchr(tty, ','); if (split != NULL) *split = '\0'; - } - if (!dev_exist(tty)) { - DEBUG(4, "skipping %s\n", tty); - return; + if (!dev_exist(tty)) { + DEBUG(4, "skipping %s\n", tty); + return; + } + + console = strdup(tty); + a->id = strdup(tty); + } + else { + console = NULL; + a->id = NULL; } - console = strdup(tty); a->tout.cb = respawn; for (i = MAX_ARGS - 1; i >= 1; i--) a->argv[i] = a->argv[i - 1]; - a->id = strdup(tty); a->argv[0] = ask; a->respawn = 500;