ash: fix infinite loop on exit if tty is not there anymore

This commit is contained in:
Denis Vlasenko 2007-04-28 22:39:02 +00:00
parent e3f2f89891
commit 08c8c1d3b3
2 changed files with 8 additions and 1 deletions

View File

@ -1,5 +1,10 @@
Various bits of what is known about busybox shells, in no particular order.
2007-04-28
hush: Ctrl-C and Ctrl-Z for single NOFORK commands are working.
Memory and other resource leaks (opendir) are not addressed
(testcase is "rm -i" interrupted by ctrl-c).
2007-04-21
hush: "sleep 5 | sleep 6" + Ctrl-Z + fg seems to work.
"rm -i" + Ctrl-C, "sleep 5" + Ctrl-Z still doesn't work

View File

@ -3501,7 +3501,9 @@ setjobctl(int on)
/* turning job control off */
fd = ttyfd;
pgrp = initialpgrp;
xtcsetpgrp(fd, pgrp);
/* was xtcsetpgrp, but this can make exiting ash
* with pty already deleted loop forever */
tcsetpgrp(fd, pgrp);
setpgid(0, pgrp);
setsignal(SIGTSTP);
setsignal(SIGTTOU);