diff options
author | Patrick Mooney <pmooney@pfmooney.com> | 2015-11-12 20:11:03 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2015-11-14 08:47:05 -0800 |
commit | da2c0e64794ff584dca660fcc94a444dcc0d6c0b (patch) | |
tree | 872a40b936699d2203de71e761fddfe657dee348 /usr/src | |
parent | 7c0fa7e5c69bad99deb669aa7703bfa15bb58d5e (diff) | |
download | illumos-joyent-da2c0e64794ff584dca660fcc94a444dcc0d6c0b.tar.gz |
6455 dmake should cool its close(2) jets
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Adam Števko <adam.stevko@gmail.com>
Reviewed by: Albert Lee <trisk@omniti.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Garrett D'Amore <garrett@damore.org>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/make/lib/mksh/dosys.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/usr/src/cmd/make/lib/mksh/dosys.cc b/usr/src/cmd/make/lib/mksh/dosys.cc index 9f8b64b617..5ff0ab73b1 100644 --- a/usr/src/cmd/make/lib/mksh/dosys.cc +++ b/usr/src/cmd/make/lib/mksh/dosys.cc @@ -23,6 +23,10 @@ * Use is subject to license terms. */ +/* + * Copyright 2015, Joyent, Inc. + */ + /* * dosys.cc @@ -47,6 +51,7 @@ #include <sys/wait.h> /* wait() */ #include <ulimit.h> /* ulimit() */ #include <unistd.h> /* close(), dup2() */ +#include <stdlib.h> /* closefrom() */ #include <libintl.h> /* @@ -85,16 +90,10 @@ my_open(const char *path, int oflag, mode_t mode) { */ void redirect_io(char *stdout_file, char *stderr_file) -{ - long descriptor_limit; - int i; +{ + int i; - if ((descriptor_limit = ulimit(UL_GDESLIM)) < 0) { - fatal_mksh(gettext("ulimit() failed: %s"), errmsg(errno)); - } - for (i = 3; i < descriptor_limit; i++) { - (void) close(i); - } + (void) closefrom(3); if ((i = my_open(stdout_file, O_WRONLY | O_CREAT | O_TRUNC | O_DSYNC, S_IREAD | S_IWRITE)) < 0) { |