51 lines
1.7 KiB
Diff
51 lines
1.7 KiB
Diff
|
From 7ee24413f0945b7d582a33795cdfc7c59471cb69 Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Heimes <cheimes@redhat.com>
|
||
|
Date: Mon, 7 Oct 2019 21:58:00 +0200
|
||
|
Subject: [PATCH] Don't install a preexec_fn by default
|
||
|
|
||
|
ipautil.run() now only installs a preexec_fn when it is actually needed.
|
||
|
This addresses a compatibility issue with mod_wsgi subinterpreters under
|
||
|
Python 3.8.
|
||
|
|
||
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1759290
|
||
|
See: https://bugs.python.org/issue37951
|
||
|
Signed-off-by: Christian Heimes <cheimes@redhat.com>
|
||
|
---
|
||
|
ipapython/ipautil.py | 20 ++++++++++++--------
|
||
|
1 file changed, 12 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py
|
||
|
index d87b9e3c1..e047324d3 100644
|
||
|
--- a/ipapython/ipautil.py
|
||
|
+++ b/ipapython/ipautil.py
|
||
|
@@ -515,14 +515,18 @@ def run(args, stdin=None, raiseonerr=True, nolog=(), env=None,
|
||
|
for group, gid in zip(suplementary_groups, suplementary_gids):
|
||
|
logger.debug('suplementary_group=%s (GID %d)', group, gid)
|
||
|
|
||
|
- def preexec_fn():
|
||
|
- if runas is not None:
|
||
|
- os.setgroups(suplementary_gids)
|
||
|
- os.setregid(pent.pw_gid, pent.pw_gid)
|
||
|
- os.setreuid(pent.pw_uid, pent.pw_uid)
|
||
|
-
|
||
|
- if umask:
|
||
|
- os.umask(umask)
|
||
|
+ if runas is not None or umask is not None:
|
||
|
+ # preexec function is not supported in WSGI environment
|
||
|
+ def preexec_fn():
|
||
|
+ if runas is not None:
|
||
|
+ os.setgroups(suplementary_gids)
|
||
|
+ os.setregid(pent.pw_gid, pent.pw_gid)
|
||
|
+ os.setreuid(pent.pw_uid, pent.pw_uid)
|
||
|
+
|
||
|
+ if umask is not None:
|
||
|
+ os.umask(umask)
|
||
|
+ else:
|
||
|
+ preexec_fn = None
|
||
|
|
||
|
try:
|
||
|
# pylint: disable=subprocess-popen-preexec-fn
|
||
|
--
|
||
|
2.20.1
|
||
|
|