Browse Source

Issue #14084: Fix a file descriptor leak when importing a module with a bad encoding.

pull/2332/head
Antoine Pitrou 14 years ago
parent
commit
4f22a8d739
  1. 3
      Misc/NEWS
  2. 4
      Python/import.c

3
Misc/NEWS

@ -10,6 +10,9 @@ What's New in Python 3.2.3?
Core and Builtins
-----------------
- Issue #14084: Fix a file descriptor leak when importing a module with a
bad encoding.
- 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

4
Python/import.c

@ -3195,8 +3195,10 @@ call_find_module(char *name, PyObject *path)
memory. */
found_encoding = PyTokenizer_FindEncoding(fd);
lseek(fd, 0, 0); /* Reset position */
if (found_encoding == NULL && PyErr_Occurred())
if (found_encoding == NULL && PyErr_Occurred()) {
close(fd);
return NULL;
}
encoding = (found_encoding != NULL) ? found_encoding :
(char*)PyUnicode_GetDefaultEncoding();
}

Loading…
Cancel
Save