summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sal/osl/unx/salinit.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/sal/osl/unx/salinit.cxx b/sal/osl/unx/salinit.cxx
index d880258f387e..93c7e9d8c877 100644
--- a/sal/osl/unx/salinit.cxx
+++ b/sal/osl/unx/salinit.cxx
@@ -23,6 +23,7 @@
#include <cassert>
#include <limits>
#include <unistd.h>
+#include <sys/stat.h>
#endif
#include "osl/process.h"
@@ -54,7 +55,9 @@ void sal_detail_initialize(int argc, char ** argv) {
}
assert(openMax >= 0 && openMax <= std::numeric_limits< int >::max());
for (int fd = 3; fd < openMax; ++fd) {
- close(fd);
+ struct stat s;
+ if (fstat(fd, &s) != -1 && S_ISREG(s.st_mode))
+ close(fd);
}
#endif