ash: make code simpler, and do not do close(-1) - it's rude
This commit is contained in:
parent
b1bac0dab2
commit
ed270a5f32
14
shell/ash.c
14
shell/ash.c
@ -3461,14 +3461,17 @@ setjobctl(int on)
|
||||
* That sometimes helps to acquire controlling tty.
|
||||
* Obviously, a workaround for bugs when someone
|
||||
* failed to provide a controlling tty to bash! :) */
|
||||
fd += 3;
|
||||
while (!isatty(fd) && --fd >= 0)
|
||||
;
|
||||
fd = 2;
|
||||
while (!isatty(fd))
|
||||
if (--fd < 0)
|
||||
goto out;
|
||||
}
|
||||
fd = fcntl(fd, F_DUPFD, 10);
|
||||
close(ofd);
|
||||
if (ofd >= 0)
|
||||
close(ofd);
|
||||
if (fd < 0)
|
||||
goto out;
|
||||
/* fd is a tty at this point */
|
||||
close_on_exec_on(fd);
|
||||
do { /* while we are in the background */
|
||||
pgrp = tcgetpgrp(fd);
|
||||
@ -3502,7 +3505,8 @@ setjobctl(int on)
|
||||
setsignal(SIGTTOU);
|
||||
setsignal(SIGTTIN);
|
||||
close:
|
||||
close(fd);
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
fd = -1;
|
||||
}
|
||||
ttyfd = fd;
|
||||
|
Loading…
Reference in New Issue
Block a user