-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
[3.7] gh-101283: Improved fallback logic for subprocess with shell=True on Windows (GH-101286) #101713
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3.7] gh-101283: Improved fallback logic for subprocess with shell=True on Windows (GH-101286) #101713
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -111,6 +111,14 @@ compatibility with older versions, see the :ref:`call-function-trio` section. | |
| Added the *text* parameter, as a more understandable alias of *universal_newlines*. | ||
| Added the *capture_output* parameter. | ||
|
|
||
| .. versionchanged:: 3.11.2 | ||
|
|
||
| Changed Windows shell search order for ``shell=True``. The current | ||
| directory and ``%PATH%`` are replaced with ``%COMSPEC%`` and | ||
| ``%SystemRoot%\System32\cmd.exe``. As a result, dropping a | ||
| malicious program named ``cmd.exe`` into a current directory no | ||
| longer works. | ||
|
|
||
| .. class:: CompletedProcess | ||
|
|
||
| The return value from :func:`run`, representing a process that has finished. | ||
|
|
@@ -442,6 +450,17 @@ functions. | |
| :program:`ps`. If ``shell=True``, on POSIX the *executable* argument | ||
| specifies a replacement shell for the default :file:`/bin/sh`. | ||
|
|
||
| .. versionchanged:: 3.6 | ||
| *executable* parameter accepts a :term:`path-like object` on POSIX. | ||
|
Comment on lines
+453
to
+454
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Was it added by mistake?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It was probably added to resolve the conflict but it belongs in the 3.7 docs as well. For some reason this doc bit wasn't ported back to 3.6 and 3.7 when Serhiy landed GH-5914. I would leave it in. |
||
|
|
||
| .. versionchanged:: 3.11.2 | ||
|
ambv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Changed Windows shell search order for ``shell=True``. The current | ||
| directory and ``%PATH%`` are replaced with ``%COMSPEC%`` and | ||
| ``%SystemRoot%\System32\cmd.exe``. As a result, dropping a | ||
| malicious program named ``cmd.exe`` into a current directory no | ||
| longer works. | ||
|
|
||
| *stdin*, *stdout* and *stderr* specify the executed program's standard input, | ||
| standard output and standard error file handles, respectively. Valid values | ||
| are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a positive | ||
|
|
@@ -1032,6 +1051,14 @@ calls these functions. | |
| .. versionchanged:: 3.3 | ||
| *timeout* was added. | ||
|
|
||
| .. versionchanged:: 3.11.2 | ||
|
ambv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Changed Windows shell search order for ``shell=True``. The current | ||
| directory and ``%PATH%`` are replaced with ``%COMSPEC%`` and | ||
| ``%SystemRoot%\System32\cmd.exe``. As a result, dropping a | ||
| malicious program named ``cmd.exe`` into a current directory no | ||
| longer works. | ||
|
|
||
| .. function:: check_call(args, *, stdin=None, stdout=None, stderr=None, \ | ||
| shell=False, cwd=None, timeout=None, \ | ||
| **other_popen_kwargs) | ||
|
|
@@ -1062,6 +1089,14 @@ calls these functions. | |
| .. versionchanged:: 3.3 | ||
| *timeout* was added. | ||
|
|
||
| .. versionchanged:: 3.11.2 | ||
|
ambv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Changed Windows shell search order for ``shell=True``. The current | ||
| directory and ``%PATH%`` are replaced with ``%COMSPEC%`` and | ||
| ``%SystemRoot%\System32\cmd.exe``. As a result, dropping a | ||
| malicious program named ``cmd.exe`` into a current directory no | ||
| longer works. | ||
|
|
||
|
|
||
| .. function:: check_output(args, *, stdin=None, stderr=None, shell=False, \ | ||
| cwd=None, encoding=None, errors=None, \ | ||
|
|
@@ -1116,6 +1151,14 @@ calls these functions. | |
| .. versionadded:: 3.7 | ||
| *text* was added as a more readable alias for *universal_newlines*. | ||
|
|
||
| .. versionchanged:: 3.11.2 | ||
|
ambv marked this conversation as resolved.
Outdated
|
||
|
|
||
| Changed Windows shell search order for ``shell=True``. The current | ||
| directory and ``%PATH%`` are replaced with ``%COMSPEC%`` and | ||
| ``%SystemRoot%\System32\cmd.exe``. As a result, dropping a | ||
| malicious program named ``cmd.exe`` into a current directory no | ||
| longer works. | ||
|
|
||
|
|
||
| .. _subprocess-replacements: | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| :class:`subprocess.Popen` now uses a safer approach to find | ||
| ``cmd.exe`` when launching with ``shell=True``. Patch by Eryk Sun, | ||
| based on a patch by Oleg Iarygin. |
Uh oh!
There was an error while loading. Please reload this page.