diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-05-29 03:32:17 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2002-05-29 03:32:17 +0000 |
commit | 743ea2081c88597fefee064bb7a1f359ed368145 (patch) | |
tree | 339ac0f4b338289bfe0b9342810fe685a51314f3 /usr.bin/su | |
parent | cd849834682d2c27cb9d85bc767e63c5198cbcc2 (diff) | |
download | src-743ea2081c88597fefee064bb7a1f359ed368145.tar.gz src-743ea2081c88597fefee064bb7a1f359ed368145.zip |
Make our child the leader of its own process group to avoid receiving
signals in its stead. This fixes the dread "zsh exits upon ^C" bug.
Notes
Notes:
svn path=/head/; revision=97438
Diffstat (limited to 'usr.bin/su')
-rw-r--r-- | usr.bin/su/su.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/usr.bin/su/su.c b/usr.bin/su/su.c index ec11570e7009..b90be97adb81 100644 --- a/usr.bin/su/su.c +++ b/usr.bin/su/su.c @@ -319,6 +319,8 @@ main(int argc, char *argv[]) child_pid = fork(); switch (child_pid) { default: + setpgid(child_pid, child_pid); + tcsetpgrp(1, child_pid); while ((ret_pid = waitpid(child_pid, &statusp, WUNTRACED)) != -1) { if (WIFSTOPPED(statusp)) { child_pgrp = tcgetpgrp(1); |