summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2020-12-01 21:36:05 +0200
committerTor Lillqvist <tml@collabora.com>2020-12-01 23:31:39 +0100
commiteacf5c8ff4548fa75d6d69083c16db9152ddffc6 (patch)
tree80a522e9e6fd644eaaa60dfca3afa0ab0d74fd22 /external
parenta5b021561545bdda65c8233e541c2090a0243f74 (diff)
Guard against sysconf(_SC_OPEN_MAX) returning LONG_MAX
That seems to happen in a sandboxed process on macOS, at least. This caused an apparent hang when invoking Python, for instance simply through Tools > Macros > Run Macro... . Change-Id: I6bc055b44f298251ed596084538b98442c215fce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107012 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'external')
-rw-r--r--external/python3/macos-11.patch.020
1 files changed, 20 insertions, 0 deletions
diff --git a/external/python3/macos-11.patch.0 b/external/python3/macos-11.patch.0
index d3dbbf605639..3a3da0e99bac 100644
--- a/external/python3/macos-11.patch.0
+++ b/external/python3/macos-11.patch.0
@@ -57,3 +57,23 @@
#else
#error "unknown architecture for universal build."
#endif
+--- Modules/_posixsubprocess.c
++++ Modules/_posixsubprocess.c
+@@ -31,6 +31,8 @@
+ # define SYS_getdents64 __NR_getdents64
+ #endif
+
++#include <limits.h>
++
+ #if defined(__sun) && defined(__SVR4)
+ /* readdir64 is used to work around Solaris 9 bug 6395699. */
+ # define readdir readdir64
+@@ -202,7 +202,7 @@
+ #endif
+ #ifdef _SC_OPEN_MAX
+ local_max_fd = sysconf(_SC_OPEN_MAX);
+- if (local_max_fd == -1)
++ if (local_max_fd == -1 || local_max_fd == LONG_MAX)
+ #endif
+ local_max_fd = 256; /* Matches legacy Lib/subprocess.py behavior. */
+ return local_max_fd;