← Commit list

438b4ac28

Denys Vlasenko
Denys Vlasenko
2014-03-16
SUCCESS Duration: 136s

Subject

script: make it work even if fd 0 is closed

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 →

libbb/getpty.c+1 -1
@@ -16,7 +16,7 @@ int FAST_FUNC xgetpty(char *line)
#if ENABLE_FEATURE_DEVPTS
p = open("/dev/ptmx", O_RDWR);
- if (p > 0) {
+ if (p >= 0) {
grantpt(p); /* chmod+chown corresponding slave pty */
unlockpt(p); /* (what does this do?) */
# ifndef HAVE_PTSNAME_R
util-linux/script.c+7 -0
@@ -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 */