[package] busybox: update to v1.14.4 (closes: #5619)
[openwrt-10.03/.git] / package / busybox / patches / 001-init_avoid_loop_opening_tty.patch
index 25f690ab581a3f1d1f1af76d29144db9842045e9..8cc9ca2c89b16e87333421858b852f34e6907c78 100644 (file)
@@ -1,20 +1,15 @@
 --- a/init/init.c
 +++ b/init/init.c
-@@ -498,12 +498,11 @@ static void run_actions(int action_type)
-       for (a = init_action_list; a; a = tmp) {
-               tmp = a->next;
-               if (a->action_type & action_type) {
--                      // Pointless: run() will error out if open of device fails.
--                      ///* a->terminal of "" means "init's console" */
--                      //if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) {
--                      //      //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/);
--                      //      delete_init_action(a);
--                      //} else
-+                      /* a->terminal of "" means "init's console" */
-+                      if (a->terminal[0] && access(a->terminal, R_OK | W_OK)) {
-+                              //message(L_LOG | L_CONSOLE, "Device %s cannot be opened in RW mode", a->terminal /*, strerror(errno)*/);
-+                              delete_init_action(a);
-+                      } else
-                       if (a->action_type & (SYSINIT | WAIT | CTRLALTDEL | SHUTDOWN | RESTART)) {
-                               waitfor(run(a));
-                               delete_init_action(a);
+@@ -451,8 +451,11 @@ static void run_actions(int action_type)
+                       /* Only run stuff with pid == 0. If pid != 0,
+                        * it is already running
+                        */
+-                      if (a->pid == 0)
++                      if (a->pid == 0) {
++                              if (a->terminal && access(a->terminal, R_OK | W_OK))
++                                      continue;
+                               a->pid = run(a);
++                      }
+               }
+       }
+ }