Date: Tue, 8 Apr 2003 00:35:31 +1000 From: Tim Robbins <tjr@FreeBSD.ORG> To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Subject: Re: bin/50679: vi invoked from chpass and vipw exits on ^C Message-ID: <20030408003531.A94716@dilbert.robbins.dropbear.id.au> In-Reply-To: <200304071420.h37EKDxJ061860@freefall.freebsd.org>; 07:20:13AM -0700 References: <20030407141422.3A994C90D@dilbert.robbins.dropbear.id.au> <200304071420.h37EKDxJ061860@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Possible patch: Index: pw_util.c =================================================================== RCS file: /home/ncvs/src/lib/libutil/pw_util.c,v retrieving revision 1.28 diff -U10 -p -r1.28 pw_util.c --- pw_util.c 17 Mar 2003 02:12:55 -0000 1.28 +++ pw_util.c 7 Apr 2003 13:41:01 -0000 @@ -315,20 +315,22 @@ pw_edit(int notsetuid) _exit(EXIT_FAILURE); } errno = 0; execl(_PATH_BSHELL, "sh", "-c", editcmd, NULL); free(editcmd); _exit(errno); default: /* parent */ break; } + setpgid(editpid, editpid); + tcsetpgrp(1, editpid); for (;;) { editpid = waitpid(editpid, &pstat, WUNTRACED); if (editpid == -1) { unlink(tempname); return (-1); } else if (WIFSTOPPED(pstat)) { raise(WSTOPSIG(pstat)); } else if (WIFEXITED(pstat) && WEXITSTATUS(pstat) == 0) { editpid = -1; break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030408003531.A94716>