diff options
author | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2003-10-04 14:42:03 +0000 |
---|---|---|
committer | Yaroslav Tykhiy <ytykhiy@gmail.com> | 2003-10-04 14:42:03 +0000 |
commit | 153095405753e66b122b1e2d21e5cfdfdcf09617 (patch) | |
tree | 62acfa5d7684e2fda11607e983419468429b1f9a /usr.bin | |
parent | 1de1f935f2ffcfb2dce19a2b863b183898ba16b6 (diff) | |
download | src-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.c | 7 |
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); } |