script: make it work even if fd 0 is closed

Testcase:
script -q -c "echo hey" /dev/null 0>&-

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2014-03-16 12:34:53 +01:00
parent 29f3526048
commit 438b4ac286
2 changed files with 8 additions and 1 deletions

View file

@ -77,8 +77,15 @@ int script_main(int argc UNUSED_PARAM, char **argv)
if (!(opt & OPT_q)) {
printf("Script started, file is %s\n", fname);
}
shell = get_shell_name();
/* Some people run "script ... 0>&-".
* Our code assumes that STDIN_FILENO != pty.
* Ensure STDIN_FILENO is not closed:
*/
bb_sanitize_stdio();
pty = xgetpty(pty_line);
/* get current stdin's tty params */