- Prior to this update, calling the logging.config.fileConfig() function failed when the logging handlers already existed. Consequently, a KeyError occured in the atexit() call to the logging.shutdown() function. With this update, a fix has been added into logging.config.fileConfig() in order to lose previously existing handlers. As a result, the KeyError no longer occurs.
- IDLE is an integrated development environment for Python. With this update, support to run multiple instances of IDLE on a server has been added. As a result, multiple users can now use IDLE at the same time.
- Previously, the os.chown() function failed on 32-bit architectures when the UID and GID parameters contained numeric values greater than 2147483647 (0x7fffffff). Consequently, an error occurred with the following message:OverflowError: signed integer is greater than maximumThis bug has been fixed and the os.chown function now handles larger identification numbers correctly.
- Previously, the fcntl.ioctl() function failed on 32-bit architectures when the op parameter contained a numeric value greater than 2147483647 (0x7fffffff). Consequently, an error occurred with the following message:OverflowError: signed integer is greater than maximumThis bug has been fixed and the fcntl.ioctl function now handles larger request codes correctly.
- Due to a flaw in the Makefile.pre.in file, occasional compilation or link errors appeared when Python was rebuilt on systems with more than one CPU core. This bug has been fixed, and Python can now be rebuilt on multiple-core processing units without the aforementioned errors.
- Previously, a memory leak occurred when Python was used with the _japanese_codecs module. This bug has been fixed, and the memory leak no longer occurs in the described scenario.
- The gdb debugger has been enhanced to allow more effective debugging of Python code. The added hooks enable gdb to display human-readable representations of Python objects within the process being debugged. As a result, backtraces involving Python are now easier to read, and the new hooks enhance the effectiveness of the debugging process.
- A denial of service flaw was found in the implementation of associative arrays (dictionaries) in Python. An attacker able to supply a large number of inputs to a Python application (such as HTTP POST request parameters sent to a web application) that are used as keys when inserting data into an array could trigger multiple hash function collisions, making array operations take an excessive amount of CPU time. To mitigate this issue, randomization has been added to the hash function to reduce the chance of an attacker successfully causing intentional collisions.Note: The hash randomization is not enabled by default as it may break applications that incorrectly depend on dictionary ordering. To enable the protection, the new "PYTHONHASHSEED" environment variable or the Python interpreter's "-R" command line option can be used. Refer to the python(1) manual page for details.The RHSA-2012:0731 expat erratum must be installed with this update, which adds hash randomization to the Expat library used by the Python pyexpat module.
- A flaw was found in the way the Python SimpleHTTPServer module generated directory listings. An attacker able to upload a file with a specially-crafted name to a server could possibly perform a cross-site scripting (XSS) attack against victims visiting a listing page generated by SimpleHTTPServer, for a directory containing the crafted file (if the victims were using certain web browsers).
- A race condition was found in the way the Python distutils module set file permissions during the creation of the .pypirc file. If a local user had access to the home directory of another user who is running distutils, they could use this flaw to gain access to that user's .pypirc file, which can contain usernames and passwords for code repositories. (CVE-2011-4944)