From: Denis Vlasenko Date: Sat, 28 Apr 2007 22:39:02 +0000 (-0000) Subject: ash: fix infinite loop on exit if tty is not there anymore X-Git-Tag: 1_6_0~111 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=08c8c1d3b33de1156d8a7030ba2797276b8ff351;p=oweals%2Fbusybox.git ash: fix infinite loop on exit if tty is not there anymore --- diff --git a/shell/README b/shell/README index 2b1d05ceb..40447cacb 100644 --- a/shell/README +++ b/shell/README @@ -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 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) /* 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);