summaryrefslogtreecommitdiff
path: root/lang/python27/files/patch-Modules_posixmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python27/files/patch-Modules_posixmodule.c')
-rw-r--r--lang/python27/files/patch-Modules_posixmodule.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/lang/python27/files/patch-Modules_posixmodule.c b/lang/python27/files/patch-Modules_posixmodule.c
new file mode 100644
index 000000000000..acc841e5c199
--- /dev/null
+++ b/lang/python27/files/patch-Modules_posixmodule.c
@@ -0,0 +1,27 @@
+# Add closefrom(2) support
+# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274
+# https://bugs.python.org/issue38061
+# TODO: Upstream
+
+--- Modules/posixmodule.c.orig 2019-10-19 18:38:44 UTC
++++ Modules/posixmodule.c
+@@ -6676,9 +6676,16 @@ posix_closerange(PyObject *self, PyObject *args)
+ if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to))
+ return NULL;
+ Py_BEGIN_ALLOW_THREADS
+- for (i = fd_from; i < fd_to; i++)
+- if (_PyVerify_fd(i))
+- close(i);
++#ifdef __FreeBSD__
++ if (fd_to >= sysconf(_SC_OPEN_MAX)) {
++ closefrom(fd_from);
++ } else
++#endif
++ {
++ for (i = fd_from; i < fd_to; i++)
++ if (_PyVerify_fd(i))
++ close(i);
++ }
+ Py_END_ALLOW_THREADS
+ Py_RETURN_NONE;
+ }