diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 5d2bae92f..3349d0572 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -2851,11 +2851,20 @@ int pa_close_allv(const int except_fds[]) { #endif +#if defined(__FreeBSD__) + maxfd = 0; + for (int i = 0; except_fds[i] >= 0; i++) + if (except_fds[i] > maxfd) + maxfd = except_fds[i]; + maxfd++; + closefrom(maxfd); +#else if (getrlimit(RLIMIT_NOFILE, &rl) >= 0) maxfd = (int) rl.rlim_max; else maxfd = sysconf(_SC_OPEN_MAX); +#endif for (fd = 3; fd < maxfd; fd++) { int i; bool found;