summaryrefslogtreecommitdiffstats
path: root/Lib/subprocess.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-05-05 23:34:11 (GMT)
committerGitHub <noreply@github.com>2022-05-05 23:34:11 (GMT)
commitada8b6d1b1b02ae7c38f161c2a0ad866559fe18b (patch)
tree2da5c4813d3cf360a121a49268aa9fd2c9fe3cbb /Lib/subprocess.py
parentf6dd14c65336cda4e2ebccbc6408dfe3b0a68a34 (diff)
downloadcpython-ada8b6d1b1b02ae7c38f161c2a0ad866559fe18b.zip
cpython-ada8b6d1b1b02ae7c38f161c2a0ad866559fe18b.tar.gz
cpython-ada8b6d1b1b02ae7c38f161c2a0ad866559fe18b.tar.bz2
gh-57684: Add -P cmdline option and PYTHONSAFEPATH env var (#31542)
Add the -P command line option and the PYTHONSAFEPATH environment variable to not prepend a potentially unsafe path to sys.path. * Add sys.flags.safe_path flag. * Add PyConfig.safe_path member. * Programs/_bootstrap_python.c uses config.safe_path=0. * Update subprocess._optim_args_from_interpreter_flags() to handle the -P command line option. * Modules/getpath.py sets safe_path to 1 if a "._pth" file is present.
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r--Lib/subprocess.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 9099822..6e61cc2 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -313,12 +313,14 @@ def _args_from_interpreter_flags():
args.append('-E')
if sys.flags.no_user_site:
args.append('-s')
+ if sys.flags.safe_path:
+ args.append('-P')
# -W options
warnopts = sys.warnoptions[:]
- bytes_warning = sys.flags.bytes_warning
xoptions = getattr(sys, '_xoptions', {})
- dev_mode = ('dev' in xoptions)
+ bytes_warning = sys.flags.bytes_warning
+ dev_mode = sys.flags.dev_mode
if bytes_warning > 1:
warnopts.remove("error::BytesWarning")