|
@@ -0,0 +1,27 @@
|
|
|
|
+--- busybox-1.9.1/init/init.c Tue Feb 12 17:03:12 2008
|
|
|
|
++++ busybox-1.9.1-init/init/init.c Mon Mar 17 14:19:41 2008
|
|
|
|
+@@ -225,8 +225,22 @@
|
|
|
|
+ }
|
|
|
|
+ messageD(L_LOG, "console='%s'", s);
|
|
|
|
+ } else {
|
|
|
|
+- /* Make sure fd 0,1,2 are not closed */
|
|
|
|
+- bb_sanitize_stdio();
|
|
|
|
++ /* Make sure fd 0,1,2 are not closed
|
|
|
|
++ * (so that they won't be used by future opens) */
|
|
|
|
++
|
|
|
|
++ /* bb_sanitize_stdio(); - WRONG.
|
|
|
|
++ * Fail if "/dev/null" doesnt exist, and for init
|
|
|
|
++ * this is a real possibility! Open code it instead. */
|
|
|
|
++
|
|
|
|
++ int fd = open(bb_dev_null, O_RDWR);
|
|
|
|
++ if (fd < 0) {
|
|
|
|
++ /* Give me _ANY_ open descriptor! */
|
|
|
|
++ fd = xopen("/", O_RDONLY); /* we don't believe this can fail */
|
|
|
|
++ }
|
|
|
|
++ while ((unsigned)fd < 2)
|
|
|
|
++ fd = dup(fd);
|
|
|
|
++ if (fd > 2)
|
|
|
|
++ close (fd);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ s = getenv("TERM");
|