Commit cc32a682 authored by Chris Jerdonek's avatar Chris Jerdonek

Fix placement of shell=True warning in subprocess.Popen() docs.

parent 4a4a02bb
...@@ -260,8 +260,8 @@ default values. The arguments that are most commonly needed are: ...@@ -260,8 +260,8 @@ default values. The arguments that are most commonly needed are:
untrusted source makes a program vulnerable to `shell injection untrusted source makes a program vulnerable to `shell injection
<http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_, <http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_,
a serious security flaw which can result in arbitrary command execution. a serious security flaw which can result in arbitrary command execution.
For this reason, the use of *shell=True* is **strongly discouraged** in cases For this reason, the use of ``shell=True`` is **strongly discouraged**
where the command string is constructed from external input:: in cases where the command string is constructed from external input::
>>> from subprocess import call >>> from subprocess import call
>>> filename = input("What file would you like to display?\n") >>> filename = input("What file would you like to display?\n")
...@@ -346,18 +346,18 @@ functions. ...@@ -346,18 +346,18 @@ functions.
Popen(['/bin/sh', '-c', args[0], args[1], ...]) Popen(['/bin/sh', '-c', args[0], args[1], ...])
.. warning::
Enabling this option can be a security hazard if combined with untrusted
input. See the warning under :ref:`frequently-used-arguments`
for details.
On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable
specifies the default shell. The only time you need to specify specifies the default shell. The only time you need to specify
``shell=True`` on Windows is when the command you wish to execute is built ``shell=True`` on Windows is when the command you wish to execute is built
into the shell (e.g. :command:`dir` or :command:`copy`). You do not need into the shell (e.g. :command:`dir` or :command:`copy`). You do not need
``shell=True`` to run a batch file or console-based executable. ``shell=True`` to run a batch file or console-based executable.
.. warning::
Passing ``shell=True`` can be a security hazard if combined with
untrusted input. See the warning under :ref:`frequently-used-arguments`
for details.
*bufsize*, if given, has the same meaning as the corresponding argument to the *bufsize*, if given, has the same meaning as the corresponding argument to the
built-in open() function: :const:`0` means unbuffered, :const:`1` means line built-in open() function: :const:`0` means unbuffered, :const:`1` means line
buffered, any other positive value means use a buffer of (approximately) that buffered, any other positive value means use a buffer of (approximately) that
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment