Date: Mon, 7 Apr 2003 07:40:07 -0700 (PDT) From: Tim Robbins <tjr@FreeBSD.ORG> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/50679: vi invoked from chpass and vipw exits on ^C Message-ID: <200304071440.h37Ee7Pj086699@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/50679; it has been noted by GNATS. From: Tim Robbins <tjr@FreeBSD.ORG> To: FreeBSD-gnats-submit@FreeBSD.org, freebsd-bugs@FreeBSD.org Cc: Subject: Re: bin/50679: vi invoked from chpass and vipw exits on ^C Date: Tue, 8 Apr 2003 00:35:31 +1000 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?200304071440.h37Ee7Pj086699>