aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/utils/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/utils/utils.c')
-rw-r--r--src/libstrongswan/utils/utils.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/utils.c b/src/libstrongswan/utils/utils.c
index c396540ec..b4a4db802 100644
--- a/src/libstrongswan/utils/utils.c
+++ b/src/libstrongswan/utils/utils.c
@@ -175,10 +175,19 @@ void closefrom(int low_fd)
DIR *dir;
struct dirent *entry;
+#ifndef HAVE_DIRFD
+ /* if we don't have dirfd() lets close the lowest FD and hope it gets reused
+ * by opendir() */
+ close(low_fd);
+ dir_fd = low_fd++;
+#endif
+
dir = opendir(FD_DIR);
if (dir)
{
+#ifdef HAVE_DIRFD
dir_fd = dirfd(dir);
+#endif
while ((entry = readdir(dir)))
{
if (!isdigit(entry->d_name[0]))