diff options
Diffstat (limited to 'sal/osl/unx/salinit.cxx')
-rw-r--r-- | sal/osl/unx/salinit.cxx | 5 |
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 |