Make vipw error message less cryptic
Unable to find an editor, vipw would give this error: # env EDITOR=fnord vipw vipw: pw_edit(): No such file or directory vigr or crontab do better: # env EDITOR=fnord crontab -e crontab: no crontab for root - using an empty one crontab: fnord: No such file or directory crontab: "fnord" exited with status 1 After this change, vipw behaves more like vigr or crontab: # env EDITOR=fnord vipw vipw: fnord: No such file or directory vipw: "fnord" exited with status 1 Reviewed by: rpokala, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25369
This commit is contained in:
parent
39c64ed6d1
commit
830efe5539
@ -308,12 +308,13 @@ pw_edit(int notsetuid)
|
||||
sigaction(SIGQUIT, &sa_quit, NULL);
|
||||
sigprocmask(SIG_SETMASK, &oldsigset, NULL);
|
||||
if (notsetuid) {
|
||||
(void)setgid(getgid());
|
||||
(void)setuid(getuid());
|
||||
if (setgid(getgid()) == -1)
|
||||
err(1, "setgid");
|
||||
if (setuid(getuid()) == -1)
|
||||
err(1, "setuid");
|
||||
}
|
||||
errno = 0;
|
||||
execlp(editor, editor, tempname, (char *)NULL);
|
||||
_exit(errno);
|
||||
err(1, "%s", editor);
|
||||
default:
|
||||
/* parent */
|
||||
break;
|
||||
@ -327,7 +328,9 @@ pw_edit(int notsetuid)
|
||||
break;
|
||||
} else if (WIFSTOPPED(pstat)) {
|
||||
raise(WSTOPSIG(pstat));
|
||||
} else if (WIFEXITED(pstat) && WEXITSTATUS(pstat) == 0) {
|
||||
} else if (WIFEXITED(pstat)) {
|
||||
if (WEXITSTATUS(pstat) != 0)
|
||||
errx(1, "\"%s\" exited with status %d", editor, WEXITSTATUS(pstat));
|
||||
editpid = -1;
|
||||
break;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user