diff --git a/winpr/libwinpr/thread/process.c b/winpr/libwinpr/thread/process.c index 62d7f1faf..cc58e3667 100644 --- a/winpr/libwinpr/thread/process.c +++ b/winpr/libwinpr/thread/process.c @@ -24,6 +24,7 @@ #include #include +#include /** * CreateProcessA @@ -222,6 +223,19 @@ BOOL _CreateProcessExA(HANDLE hToken, DWORD dwLogonFlags, if (pid == 0) { /* child process */ +#ifdef __sun + closefrom(3); +#else + int maxfd; +#ifdef F_MAXFD // on some BSD derivates + maxfd = fcntl(0, F_MAXFD); +#else + maxfd = sysconf(_SC_OPEN_MAX); +#endif + int fd; + for(fd=3; fd