git: 35503fe28eb5 - main - timeout(1): Use _exit(2) instead of err() in child if exec failed
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 16 Apr 2025 19:46:25 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/src/commit/?id=35503fe28eb51ef606cf4ae077a96b3c717199d3
commit 35503fe28eb51ef606cf4ae077a96b3c717199d3
Author: Aaron LI <aly@aaronly.me>
AuthorDate: 2025-04-02 11:23:06 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-04-16 19:45:38 +0000
timeout(1): Use _exit(2) instead of err() in child if exec failed
* The child should _exit(2) instead of calling exit(3) via err(3) if the
execvp() failed.
* execvp(2) does not return except on error, so there is no need to
check if the return value is -1.
Obtained-from: OpenBSD (via DragonFly BSD)
---
bin/timeout/timeout.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/bin/timeout/timeout.c b/bin/timeout/timeout.c
index 83893ba0a601..1817ef24995f 100644
--- a/bin/timeout/timeout.c
+++ b/bin/timeout/timeout.c
@@ -178,7 +178,7 @@ main(int argc, char **argv)
{
int ch;
int foreground, preserve;
- int error, pstat, status;
+ int pstat, status;
int killsig = SIGTERM;
size_t i;
pid_t pid, cpid;
@@ -280,13 +280,9 @@ main(int argc, char **argv)
signal(SIGTTIN, SIG_DFL);
signal(SIGTTOU, SIG_DFL);
- error = execvp(argv[0], argv);
- if (error == -1) {
- if (errno == ENOENT)
- err(EXIT_CMD_NOENT, "exec(%s)", argv[0]);
- else
- err(EXIT_CMD_ERROR, "exec(%s)", argv[0]);
- }
+ execvp(argv[0], argv);
+ warn("exec(%s)", argv[0]);
+ _exit(errno == ENOENT ? EXIT_CMD_NOENT : EXIT_CMD_ERROR);
}
if (sigprocmask(SIG_BLOCK, &signals.sa_mask, NULL) == -1)