.. bpo: 33001
.. date: 2018-03-05-10-09-51
.. nonce: elj4Aa
.. release date: 2018-03-13
.. section: Security

Minimal fix to prevent buffer overrun in os.symlink on Windows

..

.. bpo: 32981
.. date: 2018-03-02-10-24-52
.. nonce: O_qDyj
.. section: Security

Regexes in difflib and poplib were vulnerable to catastrophic backtracking.
These regexes formed potential DOS vectors (REDOS). They have been
refactored. This resolves :cve:`2018-1060` and :cve:`2018-1061`. Patch by Jamie
Davis.

..

.. bpo: 33026
.. date: 2018-03-08-09-48-38
.. nonce: QZA3Ba
.. section: Core and Builtins

Fixed jumping out of "with" block by setting f_lineno.

..

.. bpo: 17288
.. date: 2018-02-27-13-36-21
.. nonce: Gdj24S
.. section: Core and Builtins

Prevent jumps from 'return' and 'exception' trace events.

..

.. bpo: 32889
.. date: 2018-02-20-21-53-48
.. nonce: J6eWy5
.. section: Core and Builtins

Update Valgrind suppression list to account for the rename of
``Py_ADDRESS_IN_RANG`` to ``address_in_range``.

..

.. bpo: 32650
.. date: 2018-01-28-23-01-39
.. nonce: Bbi7ek
.. section: Core and Builtins

Pdb and other debuggers dependent on bdb.py will correctly step over (next
command) native coroutines. Patch by Pablo Galindo.

..

.. bpo: 32685
.. date: 2018-01-28-12-25-06
.. nonce: nGctze
.. section: Core and Builtins

Improve suggestion when the Python 2 form of print statement is either
present on the same line as the header of a compound statement or else
terminated by a semi-colon instead of a newline. Patch by Nitish Chandra.

..

.. bpo: 32583
.. date: 2018-01-26-21-20-21
.. nonce: Fh3fau
.. section: Core and Builtins

Fix possible crashing in builtin Unicode decoders caused by write
out-of-bound errors when using customized decode error handlers.

..

.. bpo: 26163
.. date: 2018-01-14-20-32-47
.. nonce: xv9Iuv
.. section: Core and Builtins

Improved frozenset() hash to create more distinct hash values when faced
with datasets containing many similar values.

..

.. bpo: 27169
.. date: 2017-12-15-11-50-06
.. nonce: VO84fQ
.. section: Core and Builtins

The ``__debug__`` constant is now optimized out at compile time. This fixes
also bpo-22091.

..

.. bpo: 32329
.. date: 2017-12-15-00-55-35
.. nonce: XL1O99
.. section: Core and Builtins

``sys.flags.hash_randomization`` is now properly set to 0 when hash
randomization is turned off by ``PYTHONHASHSEED=0``.

..

.. bpo: 30416
.. date: 2017-12-14-11-48-19
.. nonce: hlHo_9
.. section: Core and Builtins

The optimizer is now protected from spending much time doing complex
calculations and consuming much memory for creating large constants in
constant folding.

..

.. bpo: 18533
.. date: 2017-12-13-16-46-23
.. nonce: Dlk8d7
.. section: Core and Builtins

``repr()`` on a dict containing its own ``values()`` or ``items()`` no
longer raises ``RecursionError``; OrderedDict similarly.  Instead, use
``...``, as for other recursive structures.  Patch by Ben North.

..

.. bpo: 32028
.. date: 2017-12-03-22-29-13
.. nonce: KC2w4Q
.. section: Core and Builtins

Leading whitespace is now correctly ignored when generating suggestions for
converting Py2 print statements to Py3 builtin print function calls. Patch
by Sanyam Khurana.

..

.. bpo: 32137
.. date: 2017-11-26-14-36-30
.. nonce: Stj5nL
.. section: Core and Builtins

The repr of deeply nested dict now raises a RecursionError instead of
crashing due to a stack overflow.

..

.. bpo: 33064
.. date: 2018-03-12-19-58-25
.. nonce: LO2KIY
.. section: Library

lib2to3 now properly supports trailing commas after ``*args`` and
``**kwargs`` in function signatures.

..

.. bpo: 31804
.. date: 2018-03-11-19-03-52
.. nonce: i8KUMp
.. section: Library

Avoid failing in multiprocessing.Process if the standard streams are closed
or None at exit.

..

.. bpo: 33037
.. date: 2018-03-09-23-07-07
.. nonce: nAJ3at
.. section: Library

Skip sending/receiving data after SSL transport closing.

..

.. bpo: 30353
.. date: 2018-03-08-09-54-01
.. nonce: XdE5aM
.. section: Library

Fix ctypes pass-by-value for structs on 64-bit Cygwin/MinGW.

..

.. bpo: 33009
.. date: 2018-03-06-11-54-59
.. nonce: -Ekysb
.. section: Library

Fix inspect.signature() for single-parameter partialmethods.

..

.. bpo: 32969
.. date: 2018-03-06-00-19-41
.. nonce: rGTKa0
.. section: Library

Expose several missing constants in zlib and fix corresponding
documentation.

..

.. bpo: 32713
.. date: 2018-02-26-13-16-36
.. nonce: 55yegW
.. section: Library

Fixed tarfile.itn handling of out-of-bounds float values. Patch by Joffrey
Fuhrer.

..

.. bpo: 30622
.. date: 2018-02-24-21-40-42
.. nonce: dQjxSe
.. section: Library

The ssl module now detects missing NPN support in LibreSSL.

..

.. bpo: 32922
.. date: 2018-02-23-19-12-04
.. nonce: u-xe0B
.. section: Library

dbm.open() now encodes filename with the filesystem encoding rather than
default encoding.

..

.. bpo: 32859
.. date: 2018-02-19-17-46-31
.. nonce: kAT-Xp
.. section: Library

In ``os.dup2``, don't check every call whether the ``dup3`` syscall exists
or not.

..

.. bpo: 21060
.. date: 2018-02-17-19-20-19
.. nonce: S1Z-x6
.. section: Library

Rewrite confusing message from setup.py upload from "No dist file created in
earlier command" to the more helpful "Must create and upload files in one
command".

..

.. bpo: 32857
.. date: 2018-02-16-14-37-14
.. nonce: -XljAx
.. section: Library

In :mod:`tkinter`, ``after_cancel(None)`` now raises a :exc:`ValueError`
instead of canceling the first scheduled function.  Patch by Cheryl Sabella.

..

.. bpo: 32852
.. date: 2018-02-15-12-04-29
.. nonce: HDqIxM
.. section: Library

Make sure sys.argv remains as a list when running trace.

..

.. bpo: 32841
.. date: 2018-02-14-00-21-24
.. nonce: bvHDOc
.. section: Library

Fixed ``asyncio.Condition`` issue which silently ignored cancellation after
notifying and cancelling a conditional lock. Patch by Bar Harel.

..

.. bpo: 31787
.. date: 2018-02-09-21-41-56
.. nonce: owSZ2t
.. section: Library

Fixed refleaks of ``__init__()`` methods in various modules. (Contributed by
Oren Milman)

..

.. bpo: 30157
.. date: 2018-02-09-14-44-43
.. nonce: lEiiAK
.. section: Library

Fixed guessing quote and delimiter in csv.Sniffer.sniff() when only the last
field is quoted.  Patch by Jake Davis.

..

.. bpo: 32394
.. date: 2018-02-08-08-18-26
.. nonce: 6E_7X7
.. section: Library

socket: Remove TCP_FASTOPEN, TCP_KEEPCNT flags on older version Windows
during run-time.

..

.. bpo: 32777
.. date: 2018-02-05-21-28-28
.. nonce: C-wIXF
.. section: Library

Fix a rare but potential pre-exec child process deadlock in subprocess on
POSIX systems when marking file descriptors inheritable on exec in the child
process.  This bug appears to have been introduced in 3.4.

..

.. bpo: 32647
.. date: 2018-02-05-13-31-42
.. nonce: ktmfR_
.. section: Library

The ctypes module used to depend on indirect linking for dlopen. The shared
extension is now explicitly linked against libdl on platforms with dl.

..

.. bpo: 32734
.. date: 2018-02-01-01-34-47
.. nonce: gCV9AD
.. section: Library

Fixed ``asyncio.Lock()`` safety issue which allowed acquiring and locking
the same lock multiple times, without it being free. Patch by Bar Harel.

..

.. bpo: 32727
.. date: 2018-01-30-17-46-18
.. nonce: aHVsRC
.. section: Library

Do not include name field in SMTP envelope from address. Patch by Stéphane
Wirtel

..

.. bpo: 27931
.. date: 2018-01-25-21-04-11
.. nonce: e4r52t
.. section: Library

Fix email address header parsing error when the username is an empty quoted
string. Patch by Xiang Zhang.

..

.. bpo: 32304
.. date: 2018-01-21-16-33-53
.. nonce: TItrNv
.. section: Library

distutils' upload command no longer corrupts tar files ending with a CR
byte, and no longer tries to convert CR to CRLF in any of the upload text
fields.

..

.. bpo: 32502
.. date: 2018-01-20-17-15-34
.. nonce: OXJfn7
.. section: Library

uuid.uuid1 no longer raises an exception if a 64-bit hardware address is
encountered.

..

.. bpo: 31848
.. date: 2018-01-18-23-34-17
.. nonce: M2cldy
.. section: Library

Fix the error handling in Aifc_read.initfp() when the SSND chunk is not
found. Patch by Zackery Spytz.

..

.. bpo: 32555
.. date: 2018-01-15-17-52-47
.. nonce: CMq2zF
.. section: Library

On FreeBSD and Solaris, os.strerror() now always decode the byte string from
the current locale encoding, rather than using ASCII/surrogateescape in some
cases.

..

.. bpo: 32521
.. date: 2018-01-15-12-53-13
.. nonce: IxX4Ba
.. section: Library

The nis module is now compatible with new libnsl and headers location.

..

.. bpo: 32473
.. date: 2018-01-10-20-37-59
.. nonce: mP_yJG
.. section: Library

Improve ABCMeta._dump_registry() output readability

..

.. bpo: 32521
.. date: 2018-01-08-18-02-33
.. nonce: Kh-KoN
.. section: Library

glibc has removed Sun RPC. Use replacement libtirpc headers and library in
nis module.

..

.. bpo: 32228
.. date: 2017-12-22-16-47-41
.. nonce: waPx3q
.. section: Library

Ensure that ``truncate()`` preserves the file position (as reported by
``tell()``) after writes longer than the buffer size.

..

.. bpo: 26133
.. date: 2017-12-21-11-08-42
.. nonce: mt81QV
.. section: Library

Don't unsubscribe signals in asyncio UNIX event loop on interpreter
shutdown.

..

.. bpo: 32185
.. date: 2017-12-20-09-25-10
.. nonce: IL0cMt
.. section: Library

The SSL module no longer sends IP addresses in SNI TLS extension on
platforms with OpenSSL 1.0.2+ or inet_pton.

..

.. bpo: 32323
.. date: 2017-12-14-10-10-10
.. nonce: ideco
.. section: Library

:func:`urllib.parse.urlsplit` does not convert zone-id (scope) to lower
case for scoped IPv6 addresses in hostnames now.

..

.. bpo: 32302
.. date: 2017-12-13-22-38-08
.. nonce: othtTr
.. section: Library

Fix bdist_wininst of distutils for CRT v142: it binary compatible with CRT
v140.

..

.. bpo: 32255
.. date: 2017-12-12-07-29-06
.. nonce: 2bfNmM
.. section: Library

A single empty field is now always quoted when written into a CSV file. This
allows to distinguish an empty row from a row consisting of a single empty
field. Patch by Licht Takeuchi.

..

.. bpo: 32277
.. date: 2017-12-11-09-53-14
.. nonce: jkKiVC
.. section: Library

Raise ``NotImplementedError`` instead of ``SystemError`` on platforms where
``chmod(..., follow_symlinks=False)`` is not supported.  Patch by Anthony
Sottile.

..

.. bpo: 32199
.. date: 2017-12-04-12-23-26
.. nonce: nGof4v
.. section: Library

The getnode() ip getter now uses 'ip link' instead of 'ip link list'.

..

.. bpo: 27456
.. date: 2017-11-02-11-57-41
.. nonce: snzyTC
.. section: Library

Ensure TCP_NODELAY is set on Linux. Tests by Victor Stinner.

..

.. bpo: 31900
.. date: 2017-10-30-15-55-32
.. nonce: -S9xc4
.. section: Library

The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE``
locale to the ``LC_NUMERIC`` locale to decode ``decimal_point`` and
``thousands_sep`` byte strings if they are non-ASCII or longer than 1 byte,
and the ``LC_NUMERIC`` locale is different than the ``LC_CTYPE`` locale.
This temporary change affects other threads.
Same change for the :meth:`str.format` method when formatting a number
(:class:`int`, :class:`float`, :class:`float` and subclasses) with the ``n``
type (ex: ``'{:n}'.format(1234)``).

..

.. bpo: 31802
.. date: 2017-10-17-14-52-14
.. nonce: sYj2Zv
.. section: Library

Importing native path module (``posixpath``, ``ntpath``) now works even if
the ``os`` module still is not imported.

..

.. bpo: 17232
.. date: 2018-02-23-12-48-03
.. nonce: tmuTKL
.. section: Documentation

Clarify docs for -O and -OO.  Patch by Terry Reedy.

..

.. bpo: 32800
.. date: 2018-02-10-15-16-04
.. nonce: FyrqCk
.. section: Documentation

Update link to w3c doc for xml default namespaces.

..

.. bpo: 8722
.. date: 2018-02-03-06-11-37
.. nonce: MPyVyj
.. section: Documentation

Document :meth:`__getattr__` behavior when property :meth:`get` method
raises :exc:`AttributeError`.

..

.. bpo: 32614
.. date: 2018-02-02-07-41-57
.. nonce: LSqzGw
.. section: Documentation

Modify RE examples in documentation to use raw strings to prevent
:exc:`DeprecationWarning` and add text to REGEX HOWTO to highlight the
deprecation.

..

.. bpo: 31972
.. date: 2018-01-25-14-23-12
.. nonce: w1m_8r
.. section: Documentation

Improve docstrings for ``pathlib.PurePath`` subclasses.

..

.. bpo: 17799
.. date: 2018-01-22-21-13-46
.. nonce: rdZ-Vk
.. section: Documentation

Explain real behaviour of sys.settrace and sys.setprofile and their C-API
counterparts regarding which type of events are received in each function.
Patch by Pablo Galindo Salgado.

..

.. bpo: 32517
.. date: 2018-03-09-07-05-12
.. nonce: ugc1iW
.. section: Tests

Fix failing ``test_asyncio`` on macOS 10.12.2+ due to transport of
``KqueueSelector`` loop was not being closed.

..

.. bpo: 32721
.. date: 2018-01-29-21-30-44
.. nonce: 2Bebm1
.. section: Tests

Fix test_hashlib to not fail if the _md5 module is not built.

..

.. bpo: 32252
.. date: 2017-12-11-13-31-33
.. nonce: YnFw7J
.. section: Tests

Fix faulthandler_suppress_crash_report() used to prevent core dump files
when testing crashes. getrlimit() returns zero on success.

..

.. bpo: 31518
.. date: 2017-09-19-20-48-50
.. nonce: KwTMMz
.. section: Tests

Debian Unstable has disabled TLS 1.0 and 1.1 for SSLv23_METHOD(). Change
TLS/SSL protocol of some tests to PROTOCOL_TLS or PROTOCOL_TLSv1_2 to make
them pass on Debian.

..

.. bpo: 32635
.. date: 2018-01-23-15-33-40
.. nonce: qHwIZy
.. section: Build

Fix segfault of the crypt module when libxcrypt is provided instead of
libcrypt at the system.

..

.. bpo: 33016
.. date: 2018-03-07-01-33-33
.. nonce: Z_Med0
.. section: Windows

Fix potential use of uninitialized memory in nt._getfinalpathname

..

.. bpo: 32903
.. date: 2018-02-28-11-03-24
.. nonce: 1SXY4t
.. section: Windows

Fix a memory leak in os.chdir() on Windows if the current directory is set
to a UNC path.

..

.. bpo: 31966
.. date: 2018-02-19-13-54-42
.. nonce: _Q3HPb
.. section: Windows

Fixed WindowsConsoleIO.write() for writing empty data.

..

.. bpo: 32409
.. date: 2018-02-19-10-00-57
.. nonce: nocuDg
.. section: Windows

Ensures activate.bat can handle Unicode contents.

..

.. bpo: 32457
.. date: 2018-02-19-08-54-06
.. nonce: vVP0Iz
.. section: Windows

Improves handling of denormalized executable path when launching Python.

..

.. bpo: 32370
.. date: 2018-02-10-15-38-19
.. nonce: kcKuct
.. section: Windows

Use the correct encoding for ipconfig output in the uuid module. Patch by
Segev Finer.

..

.. bpo: 29248
.. date: 2018-02-07-17-50-48
.. nonce: Xzwj-6
.. section: Windows

Fix :func:`os.readlink` on Windows, which was mistakenly treating the
``PrintNameOffset`` field of the reparse data buffer as a number of
characters instead of bytes. Patch by Craig Holmquist and SSE4.

..

.. bpo: 32588
.. date: 2018-01-18-14-56-45
.. nonce: vHww6F
.. section: Windows

Create standalone _distutils_findvs module.

..

.. bpo: 32726
.. date: 2018-03-13-21-00-20
.. nonce: Mticyn
.. section: macOS

Provide an additional, more modern macOS installer variant that supports
macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied third-party
libraries to OpenSSL 1.0.2n, XZ 5.2.3, and SQLite 3.22.0. The 10.9+
installer now links with and supplies its own copy of Tcl/Tk 8.6.8.

..

.. bpo: 32984
.. date: 2018-03-05-01-29-05
.. nonce: NGjgT4
.. section: IDLE

Set ``__file__`` while running a startup file.  Like Python, IDLE optionally
runs one startup file in the Shell window before presenting the first
interactive input prompt.  For IDLE, ``-s`` runs a file named in
environmental variable  :envvar:`IDLESTARTUP` or  :envvar:`PYTHONSTARTUP`;
``-r file`` runs ``file``.  Python sets ``__file__`` to the startup file
name before running the file and unsets it before the first prompt.  IDLE
now does the same when run normally, without the ``-n`` option.

..

.. bpo: 32940
.. date: 2018-02-24-18-20-50
.. nonce: ZaJ1Rf
.. section: IDLE

Simplify and rename StringTranslatePseudoMapping in pyparse.

..

.. bpo: 32916
.. date: 2018-02-23-07-32-36
.. nonce: 4MsQ5F
.. section: IDLE

Change ``str`` to ``code`` in pyparse.

..

.. bpo: 32905
.. date: 2018-02-22-00-09-27
.. nonce: VlXj0x
.. section: IDLE

Remove unused code in pyparse module.

..

.. bpo: 32874
.. date: 2018-02-19-10-56-41
.. nonce: 6pZ9Gv
.. section: IDLE

Add tests for pyparse.

..

.. bpo: 32837
.. date: 2018-02-12-17-22-48
.. nonce: -33QPl
.. section: IDLE

Using the system and place-dependent default encoding for open() is a bad
idea for IDLE's system and location-independent files.

..

.. bpo: 32826
.. date: 2018-02-12-11-05-22
.. nonce: IxNZrk
.. section: IDLE

Add "encoding=utf-8" to open() in IDLE's test_help_about. GUI test
test_file_buttons() only looks at initial ascii-only lines, but failed on
systems where open() defaults to 'ascii' because readline() internally reads
and decodes far enough ahead to encounter a non-ascii character in
CREDITS.txt.

..

.. bpo: 32765
.. date: 2018-02-04-17-52-54
.. nonce: qm0eCu
.. section: IDLE

Update configdialog General tab docstring to add new widgets to the widget
list.

..

.. bpo: 24960
.. date: 2017-12-22-09-25-51
.. nonce: TGdAgO
.. section: Tools/Demos

2to3 and lib2to3 can now read pickled grammar files using pkgutil.get_data()
rather than probing the filesystem. This lets 2to3 and lib2to3 work when run
from a zipfile.

..

.. bpo: 32222
.. date: 2017-12-07-20-51-20
.. nonce: hPBcGT
.. section: Tools/Demos

Fix pygettext not extracting docstrings for functions with type annotated
arguments. Patch by Toby Harradine.

..

.. bpo: 29084
.. date: 2017-12-16-09-59-35
.. nonce: ZGJ-LJ
.. section: C API

Undocumented C API for OrderedDict has been excluded from the limited C API.
It was added by mistake and actually never worked in the limited C API.
