← Commit list

fb274df07

Denis Vlasenko
Denis Vlasenko
2008-03-17
FAILED Duration: 20s

Subject

init: do not use bb_sanitize_stdio(), "/dev/null" may be missing (yet)

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

init/init.c+16 -2
@@ -219,8 +219,22 @@ static void console_init(void)
}
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");