diff options
author | des <des@FreeBSD.org> | 2002-05-29 03:32:17 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2002-05-29 03:32:17 +0000 |
commit | 4ba107a215d0849862ae60b64dba207294b09197 (patch) | |
tree | 339ac0f4b338289bfe0b9342810fe685a51314f3 /usr.bin | |
parent | d3f01d6a67ee1b374130fc186455d6e96298c996 (diff) | |
download | FreeBSD-src-4ba107a215d0849862ae60b64dba207294b09197.zip FreeBSD-src-4ba107a215d0849862ae60b64dba207294b09197.tar.gz |
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.
Diffstat (limited to 'usr.bin')
-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 ec11570..b90be97 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); |