aboutsummaryrefslogtreecommitdiff
path: root/shell/ash.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-04-28 22:39:02 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-04-28 22:39:02 +0000
commit08c8c1d3b33de1156d8a7030ba2797276b8ff351 (patch)
treec386a79f3a9347cbba9b224357801e69ab1b9e4d /shell/ash.c
parente3f2f8989139f00e94473882366bd665d4fcc800 (diff)
downloadbusybox-w32-08c8c1d3b33de1156d8a7030ba2797276b8ff351.tar.gz
busybox-w32-08c8c1d3b33de1156d8a7030ba2797276b8ff351.tar.bz2
busybox-w32-08c8c1d3b33de1156d8a7030ba2797276b8ff351.zip
ash: fix infinite loop on exit if tty is not there anymore
Diffstat (limited to 'shell/ash.c')
-rw-r--r--shell/ash.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 90936fcc0..16818cfc9 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -3501,7 +3501,9 @@ setjobctl(int on)
3501 /* turning job control off */ 3501 /* turning job control off */
3502 fd = ttyfd; 3502 fd = ttyfd;
3503 pgrp = initialpgrp; 3503 pgrp = initialpgrp;
3504 xtcsetpgrp(fd, pgrp); 3504 /* was xtcsetpgrp, but this can make exiting ash
3505 * with pty already deleted loop forever */
3506 tcsetpgrp(fd, pgrp);
3505 setpgid(0, pgrp); 3507 setpgid(0, pgrp);
3506 setsignal(SIGTSTP); 3508 setsignal(SIGTSTP);
3507 setsignal(SIGTTOU); 3509 setsignal(SIGTTOU);