mdev: do not follow symlinks in /sys (as was intended prior to rev 18811).

If this breaks things, please document why!
mdev,init: use shared code for fd sanitization

function                                             old     new   delta
bb_daemonize_or_rexec                                155     172     +17
mdev_main                                            500     505      +5
init_main                                            907     856     -51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 22/-51)            Total: -29 bytes
This commit is contained in:
Denis Vlasenko
2008-07-06 07:00:11 +00:00
parent ff182a3d68
commit d48e81f0cd
3 changed files with 21 additions and 20 deletions

View File

@ -221,20 +221,7 @@ static void console_init(void)
} else {
/* Make sure fd 0,1,2 are not closed
* (so that they won't be used by future opens) */
/* bb_sanitize_stdio(); - WRONG.
* It fails 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);
bb_sanitize_stdio();
}
s = getenv("TERM");