aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorYaroslav Tykhiy <ytykhiy@gmail.com>2003-10-04 14:42:03 +0000
committerYaroslav Tykhiy <ytykhiy@gmail.com>2003-10-04 14:42:03 +0000
commit153095405753e66b122b1e2d21e5cfdfdcf09617 (patch)
tree62acfa5d7684e2fda11607e983419468429b1f9a /usr.bin
parent1de1f935f2ffcfb2dce19a2b863b183898ba16b6 (diff)
downloadsrc-153095405753e66b122b1e2d21e5cfdfdcf09617.tar.gz
src-153095405753e66b122b1e2d21e5cfdfdcf09617.zip
Don't dump core from the time(1) process itself
if the child process has exited on a signal whose default action is to dump core.
Notes
Notes: svn path=/head/; revision=120744
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/time/time.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.bin/time/time.c b/usr.bin/time/time.c
index c7a248629a25..15f1cb766f29 100644
--- a/usr.bin/time/time.c
+++ b/usr.bin/time/time.c
@@ -73,6 +73,7 @@ main(int argc, char **argv)
int pid;
int aflag, ch, hflag, lflag, status, pflag;
struct timeval before, after;
+ struct rlimit rl;
struct rusage ru;
FILE *out = stderr;
char *ofn = NULL;
@@ -214,8 +215,12 @@ main(int argc, char **argv)
if (exitonsig) {
if (signal(exitonsig, SIG_DFL) == SIG_ERR)
perror("signal");
- else
+ else {
+ rl.rlim_max = rl.rlim_cur = 0;
+ if (setrlimit(RLIMIT_CORE, &rl) == -1)
+ warn("setrlimit");
kill(getpid(), exitonsig);
+ }
}
exit (WIFEXITED(status) ? WEXITSTATUS(status) : EXIT_FAILURE);
}