Core and Builtins
-----------------
-- Issue #13703: oCERT-2011-003: add -R command-line option and PYTHONHASHSEED
- environment variable, to provide an opt-in way to protect against denial of
- service attacks due to hash collisions within the dict and set types. Patch
- by David Malcolm, based on work by Victor Stinner.
+ - Issue #14084: Fix a file descriptor leak when importing a module with a
+ bad encoding.
+
+- Upgrade Unicode data to Unicode 6.1.
+
+- Issue #14040: Remove rarely used file name suffixes for C extensions
+ (under POSIX mainly).
+
+- Issue #14051: Allow arbitrary attributes to be set of classmethod and
+ staticmethod.
+
+- Issue #13703: oCERT-2011-003: Randomize hashes of str and bytes to protect
+ against denial of service attacks due to hash collisions within the dict and
+ set types. Patch by David Malcolm, based on work by Victor Stinner.
- Issue #13020: Fix a reference leak when allocating a structsequence object
fails. Patch by Suman Saha.
}
if (fd != -1) {
if (strchr(fdp->mode, 'b') == NULL) {
- /* PyTokenizer_FindEncoding() returns PyMem_MALLOC'ed
+ /* PyTokenizer_FindEncodingFilename() returns PyMem_MALLOC'ed
memory. */
- found_encoding = PyTokenizer_FindEncoding(fd);
+ found_encoding = PyTokenizer_FindEncodingFilename(fd, pathobj);
lseek(fd, 0, 0); /* Reset position */
if (found_encoding == NULL && PyErr_Occurred()) {
+ Py_XDECREF(pathobj);
+ close(fd);
return NULL;
}
encoding = (found_encoding != NULL) ? found_encoding :