[LEDE-DEV] Procd and askconsole

Lebleu Pierre Pierre.Lebleu at technicolor.com
Fri Sep 16 01:48:04 PDT 2016


Hi all,

I am new to this mailing list and I would like to present me as Pierre.

I recently play a bit with procd and I found an "issue". Indeed, if I do
a factory reset, I am able to login as root without login. I have some
scripts in /etc/uci-defaults and one of them set the password for the
root account. So, this behaviour looks like to me a bug.

For my understanding, when procd reaches STATE_INIT, it runs
the inittab and one of them is "askconsole". The problem is the system
is not completely ready to receive the user : the hostname is not even
set.

In the old sysvinit, the inittab contains an entry called "bootwait"
wich is executed after the termination of init (eg : "/etc/rc.d").
I purpose to move the "askconsole" entry to STATE_RUNNING or to create
a new entry called "askconsolewait" in order to keep backward
compatibility.

diff --git a/inittab.c b/inittab.c
index ae2c431..2d590e4 100644
--- a/inittab.c
+++ b/inittab.c
@@ -228,6 +228,10 @@ static struct init_handler handlers[] = {
                .name = "respawn",
                .cb = rcrespawn,
                .multi = 1,
+       }, {
+               .name = "askconsolewait",
+               .cb = askconsole,
+               .multi = 1,
        }
 };
 
@@ -251,11 +255,9 @@ void procd_inittab_run(const char *handler)
 
        list_for_each_entry(a, &actions, list)
                if (!strcmp(a->handler->name, handler)) {
-                       if (a->handler->multi) {
-                               a->handler->cb(a);
-                               continue;
-                       }
                        a->handler->cb(a);
+                       if (a->handler->multi)
+                               continue;
                        break;
                }
 }
diff --git a/state.c b/state.c
index 4ad9e2d..fe37419 100644
--- a/state.c
+++ b/state.c
@@ -128,6 +128,7 @@ static void state_enter(void)
 
        case STATE_RUNNING:
                LOG("- init complete -\n");
+               procd_inittab_run("askconsolewait");
                break;
 
        case STATE_SHUTDOWN:

What is your view ? Thank you.

Cheers,

Pierre



More information about the Lede-dev mailing list