text-utils: use errexec()
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
0f6adf8673
commit
62fa0883be
|
@ -1619,6 +1619,7 @@ void execute(char *filename, char *cmd, ...)
|
|||
for (n = 10; (id = fork()) < 0 && n > 0; n--)
|
||||
sleep(5);
|
||||
if (id == 0) {
|
||||
int errsv;
|
||||
if (!isatty(0)) {
|
||||
close(0);
|
||||
open("/dev/tty", 0);
|
||||
|
@ -1647,8 +1648,9 @@ void execute(char *filename, char *cmd, ...)
|
|||
va_end(argp);
|
||||
|
||||
execvp(cmd, args);
|
||||
errsv = errno;
|
||||
putserr(_("exec failed\n"));
|
||||
exit(EXIT_FAILURE);
|
||||
exit(errsv == ENOENT ? EX_EXEC_ENOENT : EX_EXEC_FAILED);
|
||||
}
|
||||
if (id > 0) {
|
||||
signal(SIGINT, SIG_IGN);
|
||||
|
|
|
@ -1380,9 +1380,8 @@ static void pgfile(FILE *f, const char *name)
|
|||
my_sigset(SIGTERM, oldterm);
|
||||
execl(sh, sh, "-c",
|
||||
cmd.cmdline + 1, NULL);
|
||||
warn(_("failed to execute %s"), sh);
|
||||
_exit(0177);
|
||||
/* NOTREACHED */
|
||||
errexec(sh);
|
||||
break;
|
||||
}
|
||||
case -1:
|
||||
mesg(_("fork() failed, "
|
||||
|
|
Loading…
Reference in New Issue