Just exit in the child if execve(2) fails.

No functional change.

This is mostly addressing a false-positive from the clang static
analyzer due to it thinking that done() was being called with freed
memory, however the kill(0, SIGTERM) made the done() never reached.
It doesn't make sense to the show the footer from the child anyhow, nor
does it make sense to kill the process group here since the execve(2)
failed in the child.  This code was leftover from many years of refactoring.

MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
This commit is contained in:
Bryan Drewery 2016-03-08 18:05:20 +00:00
parent 7b245cb846
commit 95d13d1b02

View File

@ -80,7 +80,6 @@ static struct termios tt;
static void done(int) __dead2;
static void doshell(char **);
static void fail(void);
static void finish(void);
static void record(FILE *, char *, size_t, int);
static void consume(FILE *, off_t, char *, int);
@ -347,14 +346,7 @@ doshell(char **av)
execl(shell, shell, "-i", (char *)NULL);
warn("%s", shell);
}
fail();
}
static void
fail(void)
{
(void)kill(0, SIGTERM);
done(1);
exit(1);
}
static void